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
- MasterPage.cs
- ValidationError.cs
- AssemblyNameProxy.cs
- DataRecord.cs
- httpapplicationstate.cs
- XmlBoundElement.cs
- TypeDescriptionProvider.cs
- TypeResolver.cs
- ActivityWithResult.cs
- XmlDataSourceView.cs
- InheritanceContextHelper.cs
- SettingsBindableAttribute.cs
- UriParserTemplates.cs
- UrlPropertyAttribute.cs
- ExpressionBuilder.cs
- DataGridViewAdvancedBorderStyle.cs
- Html32TextWriter.cs
- EnumerableRowCollectionExtensions.cs
- DateTimeConverter2.cs
- WebPartConnectionCollection.cs
- TimeSpan.cs
- SchemaImporterExtensionsSection.cs
- ObjectRef.cs
- BasicHttpSecurityElement.cs
- AngleUtil.cs
- WindowInteropHelper.cs
- Literal.cs
- StrongNameIdentityPermission.cs
- ApplicationFileCodeDomTreeGenerator.cs
- DocumentPaginator.cs
- DataGridViewSelectedCellCollection.cs
- XmlDictionaryWriter.cs
- MethodBody.cs
- DBConcurrencyException.cs
- GradientBrush.cs
- CommandDevice.cs
- StylusShape.cs
- XmlSignatureProperties.cs
- ImageList.cs
- FileRecordSequenceHelper.cs
- BuildProvider.cs
- InternalControlCollection.cs
- OTFRasterizer.cs
- NegotiateStream.cs
- XmlComment.cs
- PropertyTabAttribute.cs
- XpsDocumentEvent.cs
- CodeIdentifier.cs
- HttpCachePolicyWrapper.cs
- ColorKeyFrameCollection.cs
- DynamicPropertyHolder.cs
- EmbossBitmapEffect.cs
- BinaryMessageFormatter.cs
- LookupBindingPropertiesAttribute.cs
- PrinterSettings.cs
- HwndHost.cs
- FormCollection.cs
- SspiSafeHandles.cs
- ControlTemplate.cs
- MethodRental.cs
- ButtonDesigner.cs
- Exceptions.cs
- SponsorHelper.cs
- XmlArrayItemAttribute.cs
- WebPartDisplayModeCancelEventArgs.cs
- remotingproxy.cs
- CngProperty.cs
- LockRecoveryTask.cs
- CriticalFinalizerObject.cs
- OledbConnectionStringbuilder.cs
- SettingsBindableAttribute.cs
- UrlAuthorizationModule.cs
- ListSortDescriptionCollection.cs
- HandleRef.cs
- ProgressBar.cs
- baseaxisquery.cs
- ToolStripOverflow.cs
- SafeThreadHandle.cs
- SegmentInfo.cs
- EdmSchemaError.cs
- EventSourceCreationData.cs
- MetaColumn.cs
- COM2FontConverter.cs
- ListBoxItem.cs
- VectorAnimation.cs
- DoWorkEventArgs.cs
- FrugalList.cs
- SqlUnionizer.cs
- ListViewPagedDataSource.cs
- Hyperlink.cs
- InputProcessorProfiles.cs
- SecurityManager.cs
- BStrWrapper.cs
- HtmlButton.cs
- XsdDuration.cs
- XmlNamespaceDeclarationsAttribute.cs
- _NegotiateClient.cs
- DodSequenceMerge.cs
- MissingSatelliteAssemblyException.cs
- ExpandSegment.cs