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
- SafeFileMappingHandle.cs
- ScriptResourceAttribute.cs
- SmiMetaData.cs
- XmlDataSource.cs
- ValueTable.cs
- ToolBarButtonClickEvent.cs
- TreeNodeClickEventArgs.cs
- autovalidator.cs
- SqlDataSourceView.cs
- InkCanvasAutomationPeer.cs
- TraceLevelStore.cs
- PromptStyle.cs
- DependencyPropertyKey.cs
- LostFocusEventManager.cs
- TypeConstant.cs
- NavigatorInput.cs
- mansign.cs
- CheckBoxFlatAdapter.cs
- ToolStripRendererSwitcher.cs
- ReferenceService.cs
- HwndProxyElementProvider.cs
- SchemaObjectWriter.cs
- DbTypeMap.cs
- ReturnEventArgs.cs
- SecureEnvironment.cs
- MarshalByValueComponent.cs
- CodeArrayIndexerExpression.cs
- TemplatePropertyEntry.cs
- ScalarOps.cs
- FontCacheLogic.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ServiceContractListItemList.cs
- SqlCacheDependencyDatabaseCollection.cs
- GorillaCodec.cs
- CheckBoxBaseAdapter.cs
- LayeredChannelFactory.cs
- BitVec.cs
- Encoding.cs
- PackWebRequestFactory.cs
- MobileUserControl.cs
- SegmentInfo.cs
- SmiEventSink.cs
- ACE.cs
- ConfigurationManager.cs
- FormViewPagerRow.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ReceiveActivityValidator.cs
- VideoDrawing.cs
- ErrorHandler.cs
- FixedTextContainer.cs
- SqlCacheDependencyDatabaseCollection.cs
- DependentList.cs
- AssemblySettingAttributes.cs
- ClientUtils.cs
- SynchronousReceiveBehavior.cs
- DeflateStream.cs
- PersistenceException.cs
- CqlGenerator.cs
- XmlEntityReference.cs
- DropShadowEffect.cs
- Transform.cs
- QilScopedVisitor.cs
- MenuItem.cs
- BoolLiteral.cs
- AssemblyInfo.cs
- DynamicDataRoute.cs
- DirectoryInfo.cs
- XmlTextWriter.cs
- MsmqIntegrationProcessProtocolHandler.cs
- HashRepartitionEnumerator.cs
- InputReferenceExpression.cs
- ScrollData.cs
- SID.cs
- MimeTypeAttribute.cs
- XpsFixedDocumentSequenceReaderWriter.cs
- ProjectedWrapper.cs
- JumpTask.cs
- ReliableChannelFactory.cs
- WeakReferenceKey.cs
- XmlNotation.cs
- Themes.cs
- OleDbPropertySetGuid.cs
- RectAnimationUsingKeyFrames.cs
- StringConcat.cs
- WindowExtensionMethods.cs
- DesignerListAdapter.cs
- XmlDocumentSerializer.cs
- WebPartDisplayModeCancelEventArgs.cs
- AssemblyResolver.cs
- ServerIdentity.cs
- FtpRequestCacheValidator.cs
- AnimatedTypeHelpers.cs
- SqlClientMetaDataCollectionNames.cs
- CompositeControl.cs
- AsyncContentLoadedEventArgs.cs
- PerformanceCounterPermissionAttribute.cs
- SQLGuid.cs
- CopyNodeSetAction.cs
- WhileDesigner.xaml.cs
- SetterBaseCollection.cs