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
- FragmentQuery.cs
- PropertyMapper.cs
- RepeatInfo.cs
- TextBoxRenderer.cs
- FontStretchConverter.cs
- XmlQualifiedNameTest.cs
- LayoutEditorPart.cs
- RemotingAttributes.cs
- WebEncodingValidatorAttribute.cs
- _IPv4Address.cs
- FixedFlowMap.cs
- DetailsViewRow.cs
- Form.cs
- SelectionRangeConverter.cs
- XPathNodeInfoAtom.cs
- XmlReturnReader.cs
- WebPartCancelEventArgs.cs
- RemotingConfiguration.cs
- TempFiles.cs
- Light.cs
- TextEditor.cs
- WorkflowOperationInvoker.cs
- BlurBitmapEffect.cs
- Method.cs
- BinHexEncoding.cs
- _Rfc2616CacheValidators.cs
- XMLSyntaxException.cs
- GraphicsPath.cs
- BezierSegment.cs
- PathGradientBrush.cs
- PerformanceCounterScope.cs
- SizeChangedEventArgs.cs
- RegularExpressionValidator.cs
- FileDialogPermission.cs
- CompoundFileDeflateTransform.cs
- RootDesignerSerializerAttribute.cs
- TemplatedMailWebEventProvider.cs
- Menu.cs
- RequestChannelBinder.cs
- ElementHostPropertyMap.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- BufferedReadStream.cs
- FrameworkElement.cs
- AvtEvent.cs
- TiffBitmapEncoder.cs
- SiteMembershipCondition.cs
- LabelEditEvent.cs
- ImageAttributes.cs
- TreeNode.cs
- StrokeNodeOperations2.cs
- BamlReader.cs
- XmlReaderDelegator.cs
- SafeCoTaskMem.cs
- SecurityTokenInclusionMode.cs
- ChildChangedEventArgs.cs
- ValidationErrorEventArgs.cs
- MarkupExtensionParser.cs
- ObjectIDGenerator.cs
- SatelliteContractVersionAttribute.cs
- FacetDescriptionElement.cs
- TemplateColumn.cs
- ColorConvertedBitmap.cs
- Completion.cs
- AmbientProperties.cs
- EncoderExceptionFallback.cs
- WeakReference.cs
- XmlQueryOutput.cs
- WsatRegistrationHeader.cs
- AssemblyResourceLoader.cs
- DefaultEventAttribute.cs
- WebBrowserBase.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- FixedDocumentPaginator.cs
- OrderedDictionary.cs
- DocumentPaginator.cs
- UserControlParser.cs
- SchemaImporter.cs
- FormViewUpdateEventArgs.cs
- RsaSecurityToken.cs
- RequestQueryParser.cs
- FixedLineResult.cs
- xml.cs
- SessionPageStateSection.cs
- FacetChecker.cs
- WpfGeneratedKnownProperties.cs
- HttpChannelListener.cs
- _NegoState.cs
- CacheChildrenQuery.cs
- ConfigurationStrings.cs
- CleanUpVirtualizedItemEventArgs.cs
- PropertyNames.cs
- CharAnimationBase.cs
- DataGridAutoFormatDialog.cs
- serverconfig.cs
- ParseNumbers.cs
- VariableAction.cs
- wgx_render.cs
- ColorBlend.cs
- Baml2006Reader.cs
- WorkflowHostingEndpoint.cs