Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / System / data / design / ExtendedPropertiesHandler.cs / 1 / ExtendedPropertiesHandler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All Rights Reserved. // Information Contained Herein is Proprietary and Confidential. // //----------------------------------------------------------------------------- namespace System.Data.Design { using System; using System.CodeDom; using System.Collections; using System.ComponentModel; using System.Data; using System.Design; internal sealed class ExtendedPropertiesHandler { private static TypedDataSourceCodeGenerator codeGenerator = null; private static DataSourceComponent targetObject = null; // private constructor to avoid class being instantiated. private ExtendedPropertiesHandler() { } internal static TypedDataSourceCodeGenerator CodeGenerator { set { codeGenerator = value; } } internal static void AddExtendedProperties(DataSourceComponent targetObj, CodeExpression addTarget, IList statementCollection, Hashtable extendedProperties) { if(extendedProperties == null) { return; } if (addTarget == null) { throw new InternalException("ExtendedPropertiesHandler.AddExtendedProperties: addTarget cannot be null"); } if (statementCollection == null) { throw new InternalException("ExtendedPropertiesHandler.AddExtendedProperties: statementCollection cannot be null"); } if (codeGenerator == null) { throw new InternalException("ExtendedPropertiesHandler.AddExtendedProperties: codeGenerator cannot be null"); } if (targetObj == null) { throw new InternalException("ExtendedPropertiesHandler.AddExtendedProperties: targetObject cannot be null"); } targetObject = targetObj; if(codeGenerator.GenerateExtendedProperties) { GenerateProperties(addTarget, statementCollection, extendedProperties); } else { // Generating extended properties could break compatibility with typed DataSets v1, so, if we're not explicitly // requested to do so, we generate only the ones used for naming (added by us) SortedList namingProperties = new SortedList(new Comparer(System.Globalization.CultureInfo.InvariantCulture)); foreach(string extPropName in targetObject.NamingPropertyNames) { string extPropValue = extendedProperties[extPropName] as string; if(!StringUtil.Empty(extPropValue)) { namingProperties.Add((string)extPropName, extPropValue); } } GenerateProperties(addTarget, statementCollection, namingProperties); } } private static void GenerateProperties(CodeExpression addTarget, IList statementCollection, ICollection extendedProperties) { if (extendedProperties != null) { IDictionaryEnumerator enumerator = (IDictionaryEnumerator) extendedProperties.GetEnumerator(); if (enumerator != null) { enumerator.Reset(); while (enumerator.MoveNext()) { string key = enumerator.Key as string; string val = enumerator.Value as string; if (key == null || val == null) { codeGenerator.ProblemList.Add( new DSGeneratorProblem(SR.GetString(SR.CG_UnableToReadExtProperties), ProblemSeverity.NonFatalError, targetObject) ); continue; } else { //\\.ExtendedProperties.Add( , ); statementCollection.Add( CodeGenHelper.Stm( CodeGenHelper.MethodCall( CodeGenHelper.Property( addTarget, "ExtendedProperties" ), "Add", new CodeExpression[] { CodeGenHelper.Primitive(key), CodeGenHelper.Primitive(val) } ) ) ); } } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SizeChangedInfo.cs
- ZipIOCentralDirectoryBlock.cs
- SudsCommon.cs
- RichTextBox.cs
- TextServicesProperty.cs
- GetMemberBinder.cs
- PropertyMetadata.cs
- ValidationError.cs
- TreeNode.cs
- SafeMemoryMappedViewHandle.cs
- TransformPatternIdentifiers.cs
- DesignTimeHTMLTextWriter.cs
- Component.cs
- SettingsSavedEventArgs.cs
- DataServiceContext.cs
- EntityClientCacheEntry.cs
- TextProperties.cs
- XmlAttributeAttribute.cs
- DSGeneratorProblem.cs
- IOException.cs
- ReferenceService.cs
- UInt32.cs
- TextBoxLine.cs
- GeneralTransform3DTo2DTo3D.cs
- Command.cs
- RichTextBoxConstants.cs
- XmlSerializer.cs
- InkCanvasFeedbackAdorner.cs
- TypeToken.cs
- RegexWorker.cs
- ErrorLog.cs
- CodeExporter.cs
- LoadMessageLogger.cs
- BezierSegment.cs
- CodeArgumentReferenceExpression.cs
- VisualBrush.cs
- IPAddressCollection.cs
- NameTable.cs
- Image.cs
- EntityDataSourceMemberPath.cs
- ContextDataSourceContextData.cs
- Compiler.cs
- FieldNameLookup.cs
- XmlNamespaceManager.cs
- TypeNameParser.cs
- Simplifier.cs
- PropertyCondition.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- CatchBlock.cs
- DayRenderEvent.cs
- TabControl.cs
- SizeValueSerializer.cs
- Matrix3D.cs
- TextReturnReader.cs
- DataBindingHandlerAttribute.cs
- AccessControlList.cs
- Int32RectConverter.cs
- ForAllOperator.cs
- SoapTypeAttribute.cs
- PagePropertiesChangingEventArgs.cs
- PageParserFilter.cs
- Scanner.cs
- DataObjectMethodAttribute.cs
- XmlObjectSerializerWriteContextComplex.cs
- COSERVERINFO.cs
- XmlProcessingInstruction.cs
- Stacktrace.cs
- GetPageNumberCompletedEventArgs.cs
- Keywords.cs
- PageStatePersister.cs
- SqlExpander.cs
- SourceFileBuildProvider.cs
- XmlCustomFormatter.cs
- OdbcDataAdapter.cs
- ModelPerspective.cs
- DecoderNLS.cs
- Ray3DHitTestResult.cs
- WebPartAddingEventArgs.cs
- ItemsControl.cs
- SecurityRuntime.cs
- ToolboxItemCollection.cs
- ListView.cs
- OdbcException.cs
- TableParaClient.cs
- CaretElement.cs
- ResourcesBuildProvider.cs
- FixedLineResult.cs
- XmlChildNodes.cs
- StickyNoteHelper.cs
- entitydatasourceentitysetnameconverter.cs
- SpeechEvent.cs
- MetadataProperty.cs
- UrlPath.cs
- FileSystemWatcher.cs
- Interlocked.cs
- XmlElementCollection.cs
- XmlSchemas.cs
- PropertyItem.cs
- DataGridSortCommandEventArgs.cs
- ApplicationServiceManager.cs