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
- TCPClient.cs
- DictionaryKeyPropertyAttribute.cs
- ExeConfigurationFileMap.cs
- StorageModelBuildProvider.cs
- DragDrop.cs
- TableRowsCollectionEditor.cs
- DATA_BLOB.cs
- BinaryReader.cs
- GlobalizationSection.cs
- HttpProcessUtility.cs
- PolicyManager.cs
- DocumentPageViewAutomationPeer.cs
- TdsParserHelperClasses.cs
- Pkcs7Recipient.cs
- XmlWhitespace.cs
- AuthenticationModuleElement.cs
- ChangesetResponse.cs
- HashMembershipCondition.cs
- ServiceDescriptionSerializer.cs
- DataTableReader.cs
- ContentDisposition.cs
- CodeIterationStatement.cs
- XmlExceptionHelper.cs
- ProfilePropertySettingsCollection.cs
- ISessionStateStore.cs
- Camera.cs
- SocketPermission.cs
- lengthconverter.cs
- ListBindingConverter.cs
- PeerChannelListener.cs
- EventMappingSettingsCollection.cs
- FlowSwitch.cs
- RunWorkerCompletedEventArgs.cs
- DbDataSourceEnumerator.cs
- CryptoStream.cs
- InvalidPropValue.cs
- ObjectItemCollection.cs
- TrackingMemoryStream.cs
- TraceSection.cs
- SliderAutomationPeer.cs
- EpmAttributeNameBuilder.cs
- httpapplicationstate.cs
- InputDevice.cs
- ApplicationDirectoryMembershipCondition.cs
- WebPartVerbsEventArgs.cs
- WebZone.cs
- TextBox.cs
- StreamResourceInfo.cs
- BrowserCapabilitiesFactory.cs
- CodeArrayCreateExpression.cs
- SignerInfo.cs
- DefaultValidator.cs
- SqlNotificationRequest.cs
- Shape.cs
- BamlRecords.cs
- MenuItem.cs
- XmlSchemaSimpleType.cs
- DateTimeFormatInfoScanner.cs
- WebBrowser.cs
- SqlServices.cs
- Span.cs
- UserMapPath.cs
- RecognizedAudio.cs
- ListBox.cs
- TimeManager.cs
- ResetableIterator.cs
- DeviceContexts.cs
- HitTestParameters3D.cs
- X509IssuerSerialKeyIdentifierClause.cs
- ProjectionPathBuilder.cs
- IgnorePropertiesAttribute.cs
- EastAsianLunisolarCalendar.cs
- PathStreamGeometryContext.cs
- TTSEvent.cs
- TextBlock.cs
- COM2TypeInfoProcessor.cs
- CheckBoxList.cs
- NameScopePropertyAttribute.cs
- HttpWebRequestElement.cs
- TextSegment.cs
- BindingValueChangedEventArgs.cs
- SnapshotChangeTrackingStrategy.cs
- ArithmeticException.cs
- KoreanCalendar.cs
- UnitySerializationHolder.cs
- SessionStateModule.cs
- BindingNavigator.cs
- StringReader.cs
- InArgumentConverter.cs
- PatternMatcher.cs
- PropertyEmitter.cs
- ListBindingConverter.cs
- SQLByte.cs
- WebPartRestoreVerb.cs
- Transform3DGroup.cs
- DiagnosticsConfiguration.cs
- CaseInsensitiveHashCodeProvider.cs
- ImageMetadata.cs
- ResXBuildProvider.cs
- HttpsTransportElement.cs