Code:
/ DotNET / DotNET / 8.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
- XmlArrayItemAttributes.cs
- DataGridViewColumnHeaderCell.cs
- MemoryMappedViewStream.cs
- WindowsListViewSubItem.cs
- SystemIPv4InterfaceProperties.cs
- StrokeNodeEnumerator.cs
- MobileTextWriter.cs
- CompositeDataBoundControl.cs
- SByteConverter.cs
- AnnotationStore.cs
- ByteConverter.cs
- GetBrowserTokenRequest.cs
- Privilege.cs
- BaseTreeIterator.cs
- AnnotationObservableCollection.cs
- ConfigurationException.cs
- ObjectTag.cs
- EnumValAlphaComparer.cs
- OutArgument.cs
- XPathDocumentBuilder.cs
- RuleSettings.cs
- MinimizableAttributeTypeConverter.cs
- CssTextWriter.cs
- HttpApplicationFactory.cs
- ImportContext.cs
- _FtpDataStream.cs
- CacheOutputQuery.cs
- PointLight.cs
- bindurihelper.cs
- RangeContentEnumerator.cs
- typedescriptorpermission.cs
- QueryReaderSettings.cs
- ZipIOExtraField.cs
- CheckPair.cs
- WebPartUserCapability.cs
- UnsafeNativeMethods.cs
- DesignerTextBoxAdapter.cs
- AssemblyCollection.cs
- PassportIdentity.cs
- RequestSecurityTokenResponseCollection.cs
- UniqueEventHelper.cs
- InitializerFacet.cs
- UICuesEvent.cs
- ParserHooks.cs
- XmlSubtreeReader.cs
- WebPartPersonalization.cs
- TopClause.cs
- AggregateException.cs
- SequenceNumber.cs
- FixedTextSelectionProcessor.cs
- HtmlEmptyTagControlBuilder.cs
- ListViewTableCell.cs
- ImmutableAssemblyCacheEntry.cs
- DependencyPropertyAttribute.cs
- ModuleConfigurationInfo.cs
- MediaContext.cs
- ItemCheckEvent.cs
- SocketAddress.cs
- ConfigurationElementProperty.cs
- UICuesEvent.cs
- BlockUIContainer.cs
- followingquery.cs
- DataSourceDescriptorCollection.cs
- Config.cs
- CodeMemberProperty.cs
- XmlSchemaException.cs
- CultureTableRecord.cs
- QilXmlReader.cs
- FreeFormPanel.cs
- CompilerResults.cs
- RtfToken.cs
- Rights.cs
- MD5.cs
- PointLight.cs
- XmlSchemaSimpleType.cs
- externdll.cs
- StackBuilderSink.cs
- EditorPartCollection.cs
- DummyDataSource.cs
- ExcCanonicalXml.cs
- IconEditor.cs
- XmlDataSource.cs
- NamespaceQuery.cs
- TextContainerChangeEventArgs.cs
- PersonalizationState.cs
- RawUIStateInputReport.cs
- InfoCardArgumentException.cs
- HttpStreamFormatter.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- EntityDataSourceWizardForm.cs
- StickyNoteContentControl.cs
- FileUpload.cs
- ProviderUtil.cs
- SourceLineInfo.cs
- TextRunTypographyProperties.cs
- PageThemeCodeDomTreeGenerator.cs
- OrderingExpression.cs
- ImageMap.cs
- EndPoint.cs
- WebPartMenu.cs