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
- FormView.cs
- MarshalByRefObject.cs
- InputLangChangeRequestEvent.cs
- CodeSnippetExpression.cs
- HttpWebResponse.cs
- BamlWriter.cs
- recordstatescratchpad.cs
- InternalCache.cs
- TCPListener.cs
- DataGridViewRowsAddedEventArgs.cs
- RecipientInfo.cs
- ItemList.cs
- BufferedReceiveManager.cs
- _HeaderInfo.cs
- OleDbPermission.cs
- MappingSource.cs
- PathData.cs
- RowSpanVector.cs
- Int32Storage.cs
- TextEmbeddedObject.cs
- HMACSHA384.cs
- Splitter.cs
- WsiProfilesElement.cs
- EntryIndex.cs
- ThreadStateException.cs
- DataTableClearEvent.cs
- CheckBoxFlatAdapter.cs
- PhonemeConverter.cs
- DataObjectMethodAttribute.cs
- AppliedDeviceFiltersDialog.cs
- Win32SafeHandles.cs
- ProxyBuilder.cs
- SplitterEvent.cs
- VarRemapper.cs
- PointAnimation.cs
- StringExpressionSet.cs
- BamlTreeMap.cs
- PresentationTraceSources.cs
- CodeVariableReferenceExpression.cs
- CaseStatement.cs
- Activator.cs
- XmlCharCheckingWriter.cs
- SiteMapPath.cs
- SystemIPGlobalProperties.cs
- ReceiveActivityDesigner.cs
- IOException.cs
- CalendarButton.cs
- _IPv4Address.cs
- Html32TextWriter.cs
- RunClient.cs
- MexBindingElement.cs
- PaintValueEventArgs.cs
- AccessDataSource.cs
- MembershipPasswordException.cs
- IsolatedStorageFilePermission.cs
- TextDecoration.cs
- ILGenerator.cs
- Int16Converter.cs
- PolygonHotSpot.cs
- ShellProvider.cs
- Select.cs
- WebBrowserUriTypeConverter.cs
- wmiprovider.cs
- XmlILModule.cs
- entitydatasourceentitysetnameconverter.cs
- AutoScrollExpandMessageFilter.cs
- WebHttpEndpointElement.cs
- CodeMemberEvent.cs
- EncodingTable.cs
- XPathEmptyIterator.cs
- DiagnosticEventProvider.cs
- MailHeaderInfo.cs
- DictionarySurrogate.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- printdlgexmarshaler.cs
- StringUtil.cs
- StylusTouchDevice.cs
- AnnotationAuthorChangedEventArgs.cs
- TargetParameterCountException.cs
- SafeProcessHandle.cs
- ToolboxItemImageConverter.cs
- TextUtf8RawTextWriter.cs
- CommandHelpers.cs
- SectionRecord.cs
- DbModificationClause.cs
- ProtocolsConfiguration.cs
- ListBoxChrome.cs
- UriSectionReader.cs
- SecurityContext.cs
- CLRBindingWorker.cs
- RightsManagementEncryptionTransform.cs
- RegexCode.cs
- AddInContractAttribute.cs
- CodeGotoStatement.cs
- DataBinder.cs
- TextEditorCopyPaste.cs
- GacUtil.cs
- RichTextBoxAutomationPeer.cs
- BuildProviderCollection.cs
- RequestResizeEvent.cs