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
- DataColumnPropertyDescriptor.cs
- KeyValueInternalCollection.cs
- SignatureTargetIdManager.cs
- ToolStripPanelCell.cs
- AliasedSlot.cs
- CriticalFinalizerObject.cs
- WindowsIdentity.cs
- WebServiceHost.cs
- FixedTextView.cs
- DataSource.cs
- XslTransform.cs
- ObjectParameterCollection.cs
- XmlSchemaAppInfo.cs
- LedgerEntry.cs
- Int64Converter.cs
- CodeStatementCollection.cs
- LazyTextWriterCreator.cs
- PrtCap_Public.cs
- TypeReference.cs
- StyleHelper.cs
- GetUserPreferenceRequest.cs
- CompilerTypeWithParams.cs
- Quaternion.cs
- ProxyElement.cs
- ParserHooks.cs
- Dictionary.cs
- ProfilePropertyNameValidator.cs
- MemberMaps.cs
- CompModSwitches.cs
- OleCmdHelper.cs
- RepeatInfo.cs
- KeyValueInternalCollection.cs
- RuntimeHelpers.cs
- RbTree.cs
- ResizeGrip.cs
- DataMemberListEditor.cs
- MatrixUtil.cs
- BinaryMethodMessage.cs
- ContentDisposition.cs
- StringArrayConverter.cs
- SessionSwitchEventArgs.cs
- ProcessModule.cs
- ContainerParaClient.cs
- EventLogger.cs
- ProjectionCamera.cs
- XmlSchemaSimpleContentRestriction.cs
- DecimalKeyFrameCollection.cs
- TextElementCollection.cs
- LineUtil.cs
- ControlValuePropertyAttribute.cs
- Win32KeyboardDevice.cs
- DispatcherSynchronizationContext.cs
- DecimalConstantAttribute.cs
- PriorityBindingExpression.cs
- Input.cs
- SourceInterpreter.cs
- storepermissionattribute.cs
- xdrvalidator.cs
- InputLanguage.cs
- RunWorkerCompletedEventArgs.cs
- ProviderSettingsCollection.cs
- webproxy.cs
- ZoomingMessageFilter.cs
- ColumnMapTranslator.cs
- ClientConfigurationHost.cs
- ColumnResult.cs
- AdCreatedEventArgs.cs
- HitTestParameters3D.cs
- SmtpSection.cs
- CircleEase.cs
- StringAnimationUsingKeyFrames.cs
- CodeEntryPointMethod.cs
- UnsafeNativeMethods.cs
- DataShape.cs
- ScrollBar.cs
- DbSource.cs
- RuleSettingsCollection.cs
- RelationshipSet.cs
- Point3DIndependentAnimationStorage.cs
- CallbackHandler.cs
- CollectionsUtil.cs
- DataGridRowClipboardEventArgs.cs
- Compilation.cs
- SectionInput.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- Serializer.cs
- CompareInfo.cs
- SimpleTypeResolver.cs
- OleDbPropertySetGuid.cs
- PolicyManager.cs
- CodeTypeReference.cs
- HttpResponse.cs
- SafeBitVector32.cs
- Stylesheet.cs
- Page.cs
- UnaryNode.cs
- Model3DGroup.cs
- DbMetaDataColumnNames.cs
- DbTransaction.cs
- TemplatedWizardStep.cs