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
- TextTreeUndoUnit.cs
- Accessible.cs
- FacetChecker.cs
- DesignerEventService.cs
- ImageMap.cs
- EntityViewGenerator.cs
- BrowserTree.cs
- MenuItem.cs
- SiteMapNodeCollection.cs
- Page.cs
- InkCanvasFeedbackAdorner.cs
- BindingMemberInfo.cs
- BaseDataList.cs
- ListControl.cs
- AssemblyBuilderData.cs
- ConfigXmlDocument.cs
- CaseExpr.cs
- DataGridViewHeaderCell.cs
- TaskbarItemInfo.cs
- CodeCatchClause.cs
- WebPartZoneAutoFormat.cs
- WeakReferenceList.cs
- XmlEventCache.cs
- LabelExpression.cs
- _RequestCacheProtocol.cs
- IdentifierService.cs
- DataControlImageButton.cs
- HostingEnvironmentWrapper.cs
- SqlInternalConnection.cs
- PerformanceCounterPermissionEntry.cs
- BitmapSizeOptions.cs
- StyleTypedPropertyAttribute.cs
- OracleCommandBuilder.cs
- DataServiceEntityAttribute.cs
- RequestSecurityTokenResponse.cs
- TextEffect.cs
- MailWebEventProvider.cs
- Cursors.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- EventMappingSettingsCollection.cs
- PlacementWorkspace.cs
- FixedStringLookup.cs
- DBDataPermission.cs
- Parallel.cs
- WindowsFormsSectionHandler.cs
- DataGridViewRowPrePaintEventArgs.cs
- DataGridLinkButton.cs
- XmlSigningNodeWriter.cs
- ServiceContractAttribute.cs
- SQLMoneyStorage.cs
- ExtentCqlBlock.cs
- HtmlListAdapter.cs
- Model3D.cs
- MeasurementDCInfo.cs
- PackWebRequestFactory.cs
- MenuEventArgs.cs
- SingleAnimationBase.cs
- Comparer.cs
- Util.cs
- XamlFilter.cs
- ListViewDeleteEventArgs.cs
- RuntimeIdentifierPropertyAttribute.cs
- ObjectStateEntry.cs
- DisplayInformation.cs
- AuthenticationConfig.cs
- ByteAnimationBase.cs
- UIEndRequest.cs
- XamlVector3DCollectionSerializer.cs
- ISAPIWorkerRequest.cs
- DebugTraceHelper.cs
- XmlSchemaComplexType.cs
- ToolStripMenuItem.cs
- LiteralText.cs
- CreationContext.cs
- Matrix3D.cs
- AttachedPropertyBrowsableAttribute.cs
- ToolStripDropDownClosingEventArgs.cs
- DirectionalLight.cs
- SubMenuStyle.cs
- Image.cs
- columnmapfactory.cs
- IfAction.cs
- TextParaClient.cs
- SqlDataSourceView.cs
- FixedHyperLink.cs
- Image.cs
- AttributeQuery.cs
- FactoryGenerator.cs
- CaseExpr.cs
- ChannelFactory.cs
- WebUtil.cs
- BinaryReader.cs
- BinaryExpression.cs
- HttpBrowserCapabilitiesWrapper.cs
- DesignerVerb.cs
- EnvelopedPkcs7.cs
- LambdaCompiler.Address.cs
- StringFunctions.cs
- PagerSettings.cs
- NameValuePair.cs