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
- TextBlock.cs
- SystemException.cs
- InfocardClientCredentials.cs
- EndPoint.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- Transform3D.cs
- ErrorTableItemStyle.cs
- XmlSchemaComplexContentRestriction.cs
- GroupDescription.cs
- XmlQueryCardinality.cs
- ActivityDesignerAccessibleObject.cs
- LongTypeConverter.cs
- IPHostEntry.cs
- QilBinary.cs
- DataTableNewRowEvent.cs
- LoginView.cs
- CultureSpecificStringDictionary.cs
- XmlQualifiedName.cs
- BidPrivateBase.cs
- MethodAccessException.cs
- SoapSchemaMember.cs
- SortQuery.cs
- CollectionContainer.cs
- FastEncoder.cs
- AutomationProperty.cs
- IntAverageAggregationOperator.cs
- FreezableDefaultValueFactory.cs
- URLAttribute.cs
- DesignerCommandAdapter.cs
- Rule.cs
- Border.cs
- CreateUserWizardDesigner.cs
- HttpEncoder.cs
- LinqDataSourceDisposeEventArgs.cs
- XMLUtil.cs
- Selection.cs
- SystemTcpConnection.cs
- SettingsPropertyValue.cs
- GridSplitterAutomationPeer.cs
- TextComposition.cs
- CharConverter.cs
- ScriptHandlerFactory.cs
- PasswordBox.cs
- GridToolTip.cs
- AnnotationHighlightLayer.cs
- CoTaskMemHandle.cs
- ADMembershipProvider.cs
- DbParameterCollection.cs
- SecurityPolicySection.cs
- __TransparentProxy.cs
- WebPartEditVerb.cs
- TreeViewTemplateSelector.cs
- ResXResourceReader.cs
- BrowserCapabilitiesFactory.cs
- ProfileService.cs
- Privilege.cs
- ArrayMergeHelper.cs
- TracePayload.cs
- DbInsertCommandTree.cs
- IdentityReference.cs
- ServiceModelConfigurationElementCollection.cs
- EventNotify.cs
- NetMsmqBinding.cs
- FixedSOMTableRow.cs
- AssertSection.cs
- MemberCollection.cs
- TreeViewImageIndexConverter.cs
- ProcessHost.cs
- SpecularMaterial.cs
- FixedTextPointer.cs
- HitTestDrawingContextWalker.cs
- Configuration.cs
- TrimSurroundingWhitespaceAttribute.cs
- ThumbAutomationPeer.cs
- WebConfigurationFileMap.cs
- AlternateView.cs
- BufferAllocator.cs
- SymLanguageVendor.cs
- XmlSchemaGroupRef.cs
- AdPostCacheSubstitution.cs
- EditingScopeUndoUnit.cs
- AssertFilter.cs
- DbCommandTree.cs
- DataGridViewSelectedCellCollection.cs
- Int64.cs
- RuleInfoComparer.cs
- TokenBasedSet.cs
- HtmlInputImage.cs
- TypeToken.cs
- DefaultAuthorizationContext.cs
- BuilderInfo.cs
- PcmConverter.cs
- XmlnsCompatibleWithAttribute.cs
- XmlChildEnumerator.cs
- ClientScriptManager.cs
- TableStyle.cs
- SessionStateItemCollection.cs
- FormViewRow.cs
- SynchronizedDisposablePool.cs
- XmlTextWriter.cs