Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / TypeFieldSchema.cs / 1 / TypeFieldSchema.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design { using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Reflection; ////// Represents a field's schema based on a PropertyDescriptor object. /// This is used by the TypeSchema class to provide schema for arbitrary types. /// If the property has the DataObjectFieldAttribute then it is used to get /// additional information about the field. /// [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags = System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)] internal sealed class TypeFieldSchema : IDataSourceFieldSchema { private PropertyDescriptor _fieldDescriptor; private bool _retrievedMetaData; private bool _primaryKey; private bool _isIdentity; private bool _isNullable; private int _length = -1; public TypeFieldSchema(PropertyDescriptor fieldDescriptor) { if (fieldDescriptor == null) { throw new ArgumentNullException("fieldDescriptor"); } _fieldDescriptor = fieldDescriptor; } public Type DataType { get { // If the type is Nullablethen we just want the T Type type = _fieldDescriptor.PropertyType; if (type.IsGenericType && (type.GetGenericTypeDefinition() == typeof(Nullable<>))) { return type.GetGenericArguments()[0]; } return type; } } public bool Identity { get { EnsureMetaData(); return _isIdentity; } } public bool IsReadOnly { get { return _fieldDescriptor.IsReadOnly; } } public bool IsUnique { get { return false; } } public int Length { get { EnsureMetaData(); return _length; } } public string Name { get { return _fieldDescriptor.Name; } } public bool Nullable { get { // All reference types are nullable, and value types wrapped // in Nullable<> are nullable too. EnsureMetaData(); Type type = _fieldDescriptor.PropertyType; return (!type.IsValueType) || _isNullable || (type.IsGenericType && (type.GetGenericTypeDefinition() == typeof(Nullable<>))); } } public int Precision { get { return -1; } } public bool PrimaryKey { get { EnsureMetaData(); return _primaryKey; } } public int Scale { get { return -1; } } private void EnsureMetaData() { if (_retrievedMetaData) { return; } DataObjectFieldAttribute attr = (DataObjectFieldAttribute)_fieldDescriptor.Attributes[typeof(DataObjectFieldAttribute)]; if (attr != null) { _primaryKey = attr.PrimaryKey; _isIdentity = attr.IsIdentity; _isNullable = attr.IsNullable; _length = attr.Length; } _retrievedMetaData = true; } } } // 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
- TextParagraph.cs
- odbcmetadatacollectionnames.cs
- Material.cs
- RegexInterpreter.cs
- SoapHeaders.cs
- WindowsTreeView.cs
- AsyncCompletedEventArgs.cs
- CheckBoxStandardAdapter.cs
- WebPermission.cs
- ButtonChrome.cs
- AddressUtility.cs
- WorkflowMarkupSerializationException.cs
- TagMapCollection.cs
- GZipStream.cs
- ExpandCollapseProviderWrapper.cs
- UidManager.cs
- UIElementPropertyUndoUnit.cs
- objectquery_tresulttype.cs
- TableItemPatternIdentifiers.cs
- WebPartDisplayMode.cs
- DynamicDiscoveryDocument.cs
- JulianCalendar.cs
- UInt32.cs
- XMLSyntaxException.cs
- DataRelationCollection.cs
- AliasGenerator.cs
- BatchServiceHost.cs
- DnsPermission.cs
- ObjectListCommandEventArgs.cs
- TreeNodeEventArgs.cs
- AssemblyHelper.cs
- ResXResourceReader.cs
- PointUtil.cs
- GenericFlowSwitchHelper.cs
- IxmlLineInfo.cs
- ValidationRuleCollection.cs
- Native.cs
- CompilerErrorCollection.cs
- SettingsBindableAttribute.cs
- NameTable.cs
- ChildTable.cs
- ValueType.cs
- CriticalHandle.cs
- RectangleGeometry.cs
- SingleStorage.cs
- InvalidPrinterException.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- Int16KeyFrameCollection.cs
- SpellCheck.cs
- MatrixAnimationUsingPath.cs
- DataGridViewTopRowAccessibleObject.cs
- HtmlMeta.cs
- ByteAnimationUsingKeyFrames.cs
- XPathPatternParser.cs
- ConfigurationPropertyAttribute.cs
- StatusBarItem.cs
- SqlCommandSet.cs
- TypeGenericEnumerableViewSchema.cs
- TreeNodeBindingCollection.cs
- WorkflowInstanceAbortedRecord.cs
- XpsSerializerWriter.cs
- SessionPageStatePersister.cs
- BufferModeSettings.cs
- SQLStringStorage.cs
- WindowsGraphics2.cs
- ToolboxItemAttribute.cs
- TextElementCollection.cs
- StringConverter.cs
- SessionState.cs
- DataServiceConfiguration.cs
- FixedTextSelectionProcessor.cs
- GACMembershipCondition.cs
- XmlText.cs
- CodeDirectoryCompiler.cs
- NativeMethods.cs
- DefaultWorkflowTransactionService.cs
- GeneralTransform3DTo2D.cs
- WrappingXamlSchemaContext.cs
- XmlTextReader.cs
- XmlBaseReader.cs
- ValidationVisibilityAttribute.cs
- ClientScriptItem.cs
- CqlErrorHelper.cs
- PropertyChangedEventArgs.cs
- TransactionManager.cs
- ScrollContentPresenter.cs
- ConfigXmlWhitespace.cs
- Image.cs
- SqlConnection.cs
- ObjectHandle.cs
- TextFormatterImp.cs
- SmtpException.cs
- DesignerAutoFormat.cs
- XamlInt32CollectionSerializer.cs
- ManualWorkflowSchedulerService.cs
- SoapExtensionReflector.cs
- SiteMapDataSource.cs
- HiddenFieldPageStatePersister.cs
- HttpResponseInternalWrapper.cs
- ServiceParser.cs