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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReverseInheritProperty.cs
- ScrollBar.cs
- NetTcpSection.cs
- MasterPage.cs
- FixedSOMPageElement.cs
- Html32TextWriter.cs
- ImageBrush.cs
- RangeContentEnumerator.cs
- ReaderContextStackData.cs
- Popup.cs
- Attributes.cs
- ComponentChangingEvent.cs
- WindowsFont.cs
- XmlWhitespace.cs
- FrameSecurityDescriptor.cs
- DescendentsWalkerBase.cs
- UnsafeNativeMethods.cs
- SafeFileHandle.cs
- DataSourceHelper.cs
- WebPartEditorOkVerb.cs
- DynamicArgumentDialog.cs
- TransactionScopeDesigner.cs
- TypeBuilderInstantiation.cs
- SessionEndingEventArgs.cs
- AuthenticationService.cs
- FrameworkElementFactory.cs
- SingleAnimationBase.cs
- CodeDomConfigurationHandler.cs
- DbMetaDataFactory.cs
- SqlXmlStorage.cs
- DesignerActionKeyboardBehavior.cs
- ReadOnlyTernaryTree.cs
- GenericFlowSwitchHelper.cs
- Console.cs
- IOException.cs
- HyperLinkStyle.cs
- TextContainer.cs
- MappingException.cs
- XmlStreamStore.cs
- Utilities.cs
- MessagePropertyDescription.cs
- ParserOptions.cs
- sqlpipe.cs
- ConfigurationPropertyAttribute.cs
- DataSetUtil.cs
- X509SecurityToken.cs
- HTTPNotFoundHandler.cs
- Configuration.cs
- HtmlDocument.cs
- CheckBoxFlatAdapter.cs
- Converter.cs
- bidPrivateBase.cs
- ClientTargetCollection.cs
- RawStylusInputCustomDataList.cs
- DockingAttribute.cs
- Paragraph.cs
- UrlAuthFailedErrorFormatter.cs
- SerializationInfoEnumerator.cs
- UrlEncodedParameterWriter.cs
- WindowsTokenRoleProvider.cs
- PersonalizationStateInfo.cs
- SourceLocationProvider.cs
- ClientUrlResolverWrapper.cs
- FontStyleConverter.cs
- BooleanConverter.cs
- BitConverter.cs
- XmlUrlResolver.cs
- StrokeCollection.cs
- GradientSpreadMethodValidation.cs
- Thread.cs
- SortableBindingList.cs
- coordinatorscratchpad.cs
- SharedConnectionListener.cs
- ClientSettingsSection.cs
- basecomparevalidator.cs
- TableLayout.cs
- HotSpotCollectionEditor.cs
- XmlAttributeCache.cs
- TraceInternal.cs
- RegexTree.cs
- ButtonChrome.cs
- JulianCalendar.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- Internal.cs
- Roles.cs
- LayeredChannelFactory.cs
- CrossContextChannel.cs
- DictionaryEntry.cs
- PageAsyncTaskManager.cs
- Operators.cs
- _AutoWebProxyScriptWrapper.cs
- PropertyValueChangedEvent.cs
- IntegerValidator.cs
- ComplexTypeEmitter.cs
- FixedSOMPageConstructor.cs
- IisTraceListener.cs
- StringCollection.cs
- HandlerBase.cs
- LinkTarget.cs
- ConfigurationManager.cs