Code:
/ DotNET / DotNET / 8.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
- XmlIlGenerator.cs
- SemaphoreFullException.cs
- DbTransaction.cs
- OleDbConnection.cs
- ResourceDictionaryCollection.cs
- XmlDataImplementation.cs
- CapabilitiesAssignment.cs
- OleDbRowUpdatedEvent.cs
- CriticalHandle.cs
- ExtractedStateEntry.cs
- SelectionItemProviderWrapper.cs
- MsmqHostedTransportConfiguration.cs
- WindowsFormsHostAutomationPeer.cs
- KeyPullup.cs
- GACIdentityPermission.cs
- NavigatingCancelEventArgs.cs
- WindowsNonControl.cs
- FileDialogPermission.cs
- TableLayoutStyleCollection.cs
- TraceHandlerErrorFormatter.cs
- sqlser.cs
- ToolbarAUtomationPeer.cs
- BooleanKeyFrameCollection.cs
- __Error.cs
- ScopelessEnumAttribute.cs
- TextDecorationCollection.cs
- ToolStripItemTextRenderEventArgs.cs
- DataSet.cs
- KeyPullup.cs
- MiniConstructorInfo.cs
- dataprotectionpermission.cs
- PinProtectionHelper.cs
- DataRowView.cs
- Control.cs
- LockRecursionException.cs
- RequiredFieldValidator.cs
- NamespaceCollection.cs
- TextOnlyOutput.cs
- PhonemeEventArgs.cs
- Span.cs
- DataGridViewUtilities.cs
- WpfXamlLoader.cs
- ZipPackagePart.cs
- XamlInt32CollectionSerializer.cs
- MethodCallTranslator.cs
- HostingPreferredMapPath.cs
- ClientOptions.cs
- SaveLedgerEntryRequest.cs
- WebPartsSection.cs
- DataViewSettingCollection.cs
- DoubleLink.cs
- SHA1CryptoServiceProvider.cs
- ReliableOutputSessionChannel.cs
- FormViewPagerRow.cs
- AxHost.cs
- Switch.cs
- DecoderBestFitFallback.cs
- CacheManager.cs
- IIS7WorkerRequest.cs
- SingleAnimationUsingKeyFrames.cs
- AnimatedTypeHelpers.cs
- ConnectionConsumerAttribute.cs
- ProcessHost.cs
- LinkLabel.cs
- ConditionalAttribute.cs
- WebDisplayNameAttribute.cs
- FormViewPagerRow.cs
- ProvidersHelper.cs
- ProbeMatchesCD1.cs
- ADMembershipProvider.cs
- FixedSOMImage.cs
- COAUTHINFO.cs
- CryptoConfig.cs
- XmlException.cs
- safex509handles.cs
- DiscoveryDefaults.cs
- SmiEventSink_Default.cs
- WindowsListViewItemCheckBox.cs
- ConnectionsZone.cs
- DependencyPropertyConverter.cs
- SerializationHelper.cs
- Binding.cs
- grammarelement.cs
- TextTreeFixupNode.cs
- DbCommandDefinition.cs
- ParameterCollection.cs
- ImageClickEventArgs.cs
- ControllableStoryboardAction.cs
- PartManifestEntry.cs
- FtpWebResponse.cs
- WasAdminWrapper.cs
- SystemThemeKey.cs
- EasingKeyFrames.cs
- complextypematerializer.cs
- FormsAuthenticationEventArgs.cs
- wgx_render.cs
- Quack.cs
- SiteMap.cs
- NullableDecimalSumAggregationOperator.cs
- COMException.cs