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
- StrongNameMembershipCondition.cs
- XmlSchemaAnnotated.cs
- Queue.cs
- RetrieveVirtualItemEventArgs.cs
- XmlSchemaAppInfo.cs
- ComPlusSynchronizationContext.cs
- PageWrapper.cs
- CompoundFileStorageReference.cs
- ShutDownListener.cs
- UpdateCommand.cs
- RoleService.cs
- QueryHandler.cs
- EventToken.cs
- BitStream.cs
- TypeUnloadedException.cs
- InputProcessorProfilesLoader.cs
- exports.cs
- SQLRoleProvider.cs
- TreeNodeStyle.cs
- EditorResources.cs
- TableDetailsCollection.cs
- TableCellCollection.cs
- AssemblyInfo.cs
- MailBnfHelper.cs
- URLString.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- OdbcParameterCollection.cs
- BindingMemberInfo.cs
- CounterCreationDataCollection.cs
- ClonableStack.cs
- BamlWriter.cs
- DbConnectionPoolOptions.cs
- XmlSchemaAnnotation.cs
- SafeThemeHandle.cs
- JapaneseLunisolarCalendar.cs
- WebPartUserCapability.cs
- QuestionEventArgs.cs
- IncomingWebResponseContext.cs
- DragEventArgs.cs
- HttpDebugHandler.cs
- PkcsMisc.cs
- DataControlFieldHeaderCell.cs
- IdleTimeoutMonitor.cs
- ConstrainedGroup.cs
- WebResponse.cs
- MatrixTransform.cs
- TextFormatterContext.cs
- EventLogPermission.cs
- StreamWithDictionary.cs
- FileCodeGroup.cs
- dtdvalidator.cs
- bindurihelper.cs
- ParameterModifier.cs
- WebEventCodes.cs
- InvokeMethodDesigner.xaml.cs
- GPRECTF.cs
- AttachInfo.cs
- nulltextcontainer.cs
- DataTableClearEvent.cs
- HtmlUtf8RawTextWriter.cs
- ChannelServices.cs
- HttpRequestCacheValidator.cs
- TextSelectionHelper.cs
- ToolStripInSituService.cs
- ToolStripSeparator.cs
- AppDomain.cs
- XmlLangPropertyAttribute.cs
- DesignerDataRelationship.cs
- XPathDescendantIterator.cs
- ColorConvertedBitmapExtension.cs
- XmlNavigatorStack.cs
- HitTestWithGeometryDrawingContextWalker.cs
- ConnectionPointConverter.cs
- IPPacketInformation.cs
- FontCacheLogic.cs
- ListViewItem.cs
- DataGridViewCell.cs
- ServiceDesigner.xaml.cs
- ButtonFieldBase.cs
- MultiBinding.cs
- ObjectListDataBindEventArgs.cs
- WebPartMenuStyle.cs
- DesignTimeData.cs
- Size.cs
- TextSpanModifier.cs
- HttpRawResponse.cs
- RequestTimeoutManager.cs
- UnmanagedMarshal.cs
- AssemblyEvidenceFactory.cs
- GcHandle.cs
- X500Name.cs
- InputReferenceExpression.cs
- FormViewDeletedEventArgs.cs
- ValidationErrorEventArgs.cs
- TabRenderer.cs
- XPathPatternParser.cs
- WhiteSpaceTrimStringConverter.cs
- TextCollapsingProperties.cs
- LocatorGroup.cs
- StickyNote.cs