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
- _emptywebproxy.cs
- _Rfc2616CacheValidators.cs
- SqlException.cs
- XmlParserContext.cs
- AuthenticationException.cs
- MdImport.cs
- OleDbPropertySetGuid.cs
- ChannelServices.cs
- BatchServiceHost.cs
- GuidTagList.cs
- DataListItemEventArgs.cs
- TextContainerHelper.cs
- VarRefManager.cs
- Comparer.cs
- WindowsMenu.cs
- ReachObjectContext.cs
- XamlReader.cs
- GroupBox.cs
- FixedSOMContainer.cs
- ParenthesizePropertyNameAttribute.cs
- DesignerCategoryAttribute.cs
- VisualTreeHelper.cs
- BeginEvent.cs
- arabicshape.cs
- TypeNameConverter.cs
- GenericEnumerator.cs
- SmiEventSink_Default.cs
- SqlRetyper.cs
- TimeSpanMinutesConverter.cs
- ConfigurationSettings.cs
- PersistChildrenAttribute.cs
- ContentHostHelper.cs
- TreeNodeMouseHoverEvent.cs
- ModuleBuilder.cs
- RemotingService.cs
- ByeOperation11AsyncResult.cs
- EraserBehavior.cs
- PropertyFilterAttribute.cs
- MatrixAnimationUsingKeyFrames.cs
- AnnotationResourceCollection.cs
- TrustManager.cs
- SweepDirectionValidation.cs
- BadImageFormatException.cs
- TableCell.cs
- ThrowHelper.cs
- StringInfo.cs
- ProfileProvider.cs
- XmlCharCheckingReader.cs
- SafeHGlobalHandleCritical.cs
- BackgroundFormatInfo.cs
- SchemaDeclBase.cs
- FloaterBaseParaClient.cs
- NegotiateStream.cs
- CallbackValidator.cs
- Permission.cs
- Parallel.cs
- SweepDirectionValidation.cs
- ThreadAttributes.cs
- XmlObjectSerializerWriteContextComplex.cs
- XMLSyntaxException.cs
- XPathSelectionIterator.cs
- ipaddressinformationcollection.cs
- XslNumber.cs
- OdbcParameter.cs
- ScrollViewer.cs
- MasterPageCodeDomTreeGenerator.cs
- IDictionary.cs
- SamlConditions.cs
- PropertyMap.cs
- InputScopeNameConverter.cs
- SQLBinaryStorage.cs
- XmlSchemaSimpleTypeList.cs
- DataControlFieldHeaderCell.cs
- ScrollProperties.cs
- _LocalDataStore.cs
- DbModificationCommandTree.cs
- HtmlHistory.cs
- TimeSpan.cs
- ScopeCollection.cs
- CachedTypeface.cs
- WebPartZone.cs
- ToolStripDropDownItem.cs
- Lease.cs
- MailWriter.cs
- MasterPageParser.cs
- DesignerTransactionCloseEvent.cs
- AQNBuilder.cs
- XmlConvert.cs
- TypeConvertions.cs
- XmlDataCollection.cs
- Crc32Helper.cs
- PropertyValueChangedEvent.cs
- SizeConverter.cs
- connectionpool.cs
- Thumb.cs
- EntityDataSourceConfigureObjectContext.cs
- AttributeTableBuilder.cs
- Button.cs
- IriParsingElement.cs
- XPathParser.cs