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
- BookmarkResumptionRecord.cs
- XmlSchemaInfo.cs
- BitmapEffect.cs
- RpcResponse.cs
- Evidence.cs
- CultureInfoConverter.cs
- ColorAnimation.cs
- MaxMessageSizeStream.cs
- OutputCacheProfile.cs
- Enlistment.cs
- Underline.cs
- AvTrace.cs
- ToolStripHighContrastRenderer.cs
- SafeFileMapViewHandle.cs
- isolationinterop.cs
- XPathNode.cs
- RecordManager.cs
- HeaderCollection.cs
- UpdateManifestForBrowserApplication.cs
- _AuthenticationState.cs
- MiniLockedBorderGlyph.cs
- SchemaHelper.cs
- EventMappingSettingsCollection.cs
- storepermission.cs
- WindowsPen.cs
- DiffuseMaterial.cs
- ProbeMatchesApril2005.cs
- TextSimpleMarkerProperties.cs
- EncoderReplacementFallback.cs
- MethodToken.cs
- PersonalizationStateInfoCollection.cs
- IndexerNameAttribute.cs
- TextShapeableCharacters.cs
- QueryExpr.cs
- FontConverter.cs
- ClientProxyGenerator.cs
- Matrix.cs
- XmlSerializationReader.cs
- CLRBindingWorker.cs
- FieldBuilder.cs
- PageSettings.cs
- DataGridViewCellEventArgs.cs
- PostBackTrigger.cs
- MultiSelectRootGridEntry.cs
- MemberDescriptor.cs
- Brushes.cs
- VectorAnimationBase.cs
- _AutoWebProxyScriptWrapper.cs
- Vars.cs
- TextModifier.cs
- DataGridItem.cs
- SynchronizedInputAdaptor.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- CommandEventArgs.cs
- TypedElement.cs
- Compress.cs
- EmptyEnumerator.cs
- SortedList.cs
- SqlConnectionString.cs
- DesignObjectWrapper.cs
- XmlSchemaAll.cs
- UserControlParser.cs
- PageSettings.cs
- WebServiceReceiveDesigner.cs
- DesignRelationCollection.cs
- DependencyObjectProvider.cs
- DataControlLinkButton.cs
- TypeDescriptionProvider.cs
- DictationGrammar.cs
- TaskHelper.cs
- SqlDataSourceQueryEditorForm.cs
- FactoryRecord.cs
- ellipse.cs
- PositiveTimeSpanValidatorAttribute.cs
- CoreSwitches.cs
- VisualStates.cs
- SimplePropertyEntry.cs
- SqlUnionizer.cs
- ErrorHandlingReceiver.cs
- DES.cs
- InstanceCreationEditor.cs
- TableLayoutPanelDesigner.cs
- dataobject.cs
- ResponseBodyWriter.cs
- RtfControlWordInfo.cs
- basecomparevalidator.cs
- DataGridViewSelectedRowCollection.cs
- HierarchicalDataBoundControlAdapter.cs
- NavigatorInput.cs
- ContainerCodeDomSerializer.cs
- LineServices.cs
- ObjectDataSourceChooseMethodsPanel.cs
- CaretElement.cs
- ExtentKey.cs
- ValueOfAction.cs
- LocationSectionRecord.cs
- HttpHandlerAction.cs
- ScaleTransform.cs
- MetadataExchangeBindings.cs
- Menu.cs