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
- OracleCommandBuilder.cs
- CurrencyWrapper.cs
- CharacterBuffer.cs
- _CommandStream.cs
- DescendentsWalkerBase.cs
- DataSvcMapFileSerializer.cs
- PartialClassGenerationTask.cs
- TreeViewEvent.cs
- Matrix3DStack.cs
- AtomicFile.cs
- BamlLocalizabilityResolver.cs
- AssociationTypeEmitter.cs
- CollectionEditVerbManager.cs
- TabItemAutomationPeer.cs
- GlyphCache.cs
- SelectedDatesCollection.cs
- TransformCollection.cs
- StylusCaptureWithinProperty.cs
- MenuItemStyleCollection.cs
- ApplicationSecurityInfo.cs
- DataGridCell.cs
- NotificationContext.cs
- XmlNodeChangedEventArgs.cs
- DataGrid.cs
- TrackingMemoryStreamFactory.cs
- TemplateParser.cs
- MenuEventArgs.cs
- SslStream.cs
- SqlDataSourceSummaryPanel.cs
- SmtpCommands.cs
- SQLBinary.cs
- RemotingConfigParser.cs
- SliderAutomationPeer.cs
- Expression.cs
- InputLanguage.cs
- RelationshipNavigation.cs
- QfeChecker.cs
- RecognizerBase.cs
- XamlSerializerUtil.cs
- EntityFrameworkVersions.cs
- GlyphingCache.cs
- Pkcs9Attribute.cs
- LeaseManager.cs
- HttpRequestBase.cs
- Size.cs
- PathHelper.cs
- RepeaterItemCollection.cs
- ComplexPropertyEntry.cs
- SQLByteStorage.cs
- SHA1CryptoServiceProvider.cs
- DrawingServices.cs
- SafeLocalMemHandle.cs
- CurrentChangingEventManager.cs
- PaintValueEventArgs.cs
- SingleAnimationUsingKeyFrames.cs
- XmlWriterSettings.cs
- ObjectDataSource.cs
- RuleEngine.cs
- ArcSegment.cs
- Graph.cs
- Quad.cs
- ClientRolePrincipal.cs
- List.cs
- RightsManagementEncryptionTransform.cs
- login.cs
- CompiledQueryCacheEntry.cs
- Quaternion.cs
- ProvidePropertyAttribute.cs
- AssemblyBuilderData.cs
- FontStretches.cs
- ListChangedEventArgs.cs
- TwoPhaseCommit.cs
- WindowsEditBoxRange.cs
- WorkItem.cs
- BitFlagsGenerator.cs
- MoveSizeWinEventHandler.cs
- DBBindings.cs
- LexicalChunk.cs
- NativeMethodsOther.cs
- RawStylusInputReport.cs
- SchemaMapping.cs
- ConsumerConnectionPointCollection.cs
- Cell.cs
- ColorTransformHelper.cs
- Matrix3DValueSerializer.cs
- RelationshipConverter.cs
- PenThreadPool.cs
- ConfigurationManagerInternalFactory.cs
- DataBinding.cs
- GridViewPageEventArgs.cs
- DecoderExceptionFallback.cs
- SiteMap.cs
- EdmItemError.cs
- ISO2022Encoding.cs
- _ScatterGatherBuffers.cs
- OperationInfoBase.cs
- FormsAuthenticationCredentials.cs
- PasswordBox.cs
- SByteConverter.cs
- MtomMessageEncodingElement.cs