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
- DialogDivider.cs
- WmlLiteralTextAdapter.cs
- ConfigurationException.cs
- WebPermission.cs
- HttpDebugHandler.cs
- BaseCollection.cs
- ClientData.cs
- WebBrowser.cs
- ThicknessKeyFrameCollection.cs
- BaseParagraph.cs
- SecUtil.cs
- ParameterCollectionEditorForm.cs
- OdbcHandle.cs
- RegisteredHiddenField.cs
- StorageSetMapping.cs
- ProfileService.cs
- InvalidCommandTreeException.cs
- SiteMapNode.cs
- ConnectionManagementElement.cs
- AutoGeneratedFieldProperties.cs
- Exceptions.cs
- PropertyOverridesTypeEditor.cs
- AstTree.cs
- ScriptMethodAttribute.cs
- CheckBoxPopupAdapter.cs
- FormViewUpdatedEventArgs.cs
- _BasicClient.cs
- WebExceptionStatus.cs
- UrlPath.cs
- HtmlLink.cs
- Component.cs
- CommunicationObjectAbortedException.cs
- AppDomainFactory.cs
- OletxCommittableTransaction.cs
- TrustManagerMoreInformation.cs
- MultiByteCodec.cs
- SelectiveScrollingGrid.cs
- ApplicationDirectoryMembershipCondition.cs
- ObjectListCommand.cs
- SoapCodeExporter.cs
- Bezier.cs
- ContentPosition.cs
- RelationshipSet.cs
- DataGridItemAutomationPeer.cs
- IHttpResponseInternal.cs
- XPathSelectionIterator.cs
- CatalogPartChrome.cs
- MouseBinding.cs
- ObjectContext.cs
- AddingNewEventArgs.cs
- PropertyDescriptorGridEntry.cs
- TimeZone.cs
- XsltException.cs
- EntityTypeEmitter.cs
- ManagementObject.cs
- DSASignatureFormatter.cs
- HMAC.cs
- StreamAsIStream.cs
- CodeComment.cs
- SQLDoubleStorage.cs
- CacheChildrenQuery.cs
- DelegatedStream.cs
- ByteKeyFrameCollection.cs
- KoreanCalendar.cs
- DataSetViewSchema.cs
- XmlMembersMapping.cs
- PropertyValueChangedEvent.cs
- CookielessData.cs
- TreeNodeSelectionProcessor.cs
- SequentialOutput.cs
- XamlToRtfParser.cs
- BuildResultCache.cs
- M3DUtil.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- GroupQuery.cs
- ControlAdapter.cs
- PassportIdentity.cs
- CodeLabeledStatement.cs
- ExpressionCopier.cs
- LowerCaseStringConverter.cs
- OpenTypeMethods.cs
- ResourceDictionary.cs
- ColumnPropertiesGroup.cs
- PrimitiveXmlSerializers.cs
- TreeWalker.cs
- BlockUIContainer.cs
- ModelPropertyCollectionImpl.cs
- EntityContainerEmitter.cs
- Point3DAnimation.cs
- InArgument.cs
- Task.cs
- EdmToObjectNamespaceMap.cs
- IconHelper.cs
- DataColumnChangeEvent.cs
- IntegerFacetDescriptionElement.cs
- precedingsibling.cs
- TemplateField.cs
- EndPoint.cs
- ReflectTypeDescriptionProvider.cs
- AutoSizeToolBoxItem.cs