Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / BaseTypeViewSchema.cs / 1 / BaseTypeViewSchema.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 view's schema based on a Type object retrieved
/// through Reflection. This is the base class for several view schema
/// types.
///
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags = System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
internal abstract class BaseTypeViewSchema : IDataSourceViewSchema {
private Type _type;
private string _viewName;
protected BaseTypeViewSchema(string viewName, Type type) {
Debug.Assert(type != null);
_type = type;
_viewName = viewName;
}
public IDataSourceFieldSchema[] GetFields() {
// Search for indexer property
System.Collections.Generic.List fields = new System.Collections.Generic.List();
Type rowType = GetRowType(_type);
if (rowType != null) {
// We specifically don't get schema when the type implements
// ICustomTypeDescriptor since it is unlikely to have the
// correct schema at design time.
if (!typeof(ICustomTypeDescriptor).IsAssignableFrom(rowType)) {
PropertyDescriptorCollection rowProperties = TypeDescriptor.GetProperties(rowType);
foreach (PropertyDescriptor rowProperty in rowProperties) {
fields.Add(new TypeFieldSchema(rowProperty));
}
}
}
return fields.ToArray();
}
public IDataSourceViewSchema[] GetChildren() {
return null;
}
///
/// Derived classes must implement this method to retrieve the row
/// type for a given object types. For example, in a strongly typed
/// DataTable the row type would be the strongly typed DataRow.
///
protected abstract Type GetRowType(Type objectType);
public string Name {
get {
return _viewName;
}
}
}
}
// 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
- PocoEntityKeyStrategy.cs
- AssemblyResourceLoader.cs
- EventDescriptor.cs
- WindowsProgressbar.cs
- InvalidPipelineStoreException.cs
- mediaclock.cs
- Style.cs
- TypeReference.cs
- SoapEnvelopeProcessingElement.cs
- CategoryAttribute.cs
- IconHelper.cs
- MimeXmlReflector.cs
- RightNameExpirationInfoPair.cs
- SplitterPanel.cs
- EndpointAddress.cs
- DecoderNLS.cs
- AppDomainAttributes.cs
- ToolboxComponentsCreatedEventArgs.cs
- BroadcastEventHelper.cs
- MemoryMappedViewAccessor.cs
- IApplicationTrustManager.cs
- CustomGrammar.cs
- CombinedHttpChannel.cs
- InterleavedZipPartStream.cs
- TabControlEvent.cs
- WebPermission.cs
- EventHandlerList.cs
- RequestCache.cs
- ToggleProviderWrapper.cs
- ChangesetResponse.cs
- ListSurrogate.cs
- DetailsViewPageEventArgs.cs
- SessionEndingEventArgs.cs
- Literal.cs
- GeneralTransform3DTo2DTo3D.cs
- Column.cs
- XPathSelfQuery.cs
- Win32.cs
- DetailsViewUpdateEventArgs.cs
- AppDomainShutdownMonitor.cs
- ZipIOExtraFieldPaddingElement.cs
- RelatedCurrencyManager.cs
- InstanceContext.cs
- RemotingException.cs
- GlyphsSerializer.cs
- TraceFilter.cs
- OptimisticConcurrencyException.cs
- HandlerFactoryCache.cs
- BamlStream.cs
- UserControl.cs
- Point3DCollectionConverter.cs
- AutomationPropertyChangedEventArgs.cs
- WebPartUserCapability.cs
- DiscoveryClientReferences.cs
- WebConvert.cs
- CurrentChangingEventManager.cs
- KeyGesture.cs
- ProviderCommandInfoUtils.cs
- ListSortDescriptionCollection.cs
- ClientRolePrincipal.cs
- ConfigurationManagerInternal.cs
- WindowsIdentity.cs
- StateDesigner.Layouts.cs
- SystemThemeKey.cs
- IssuanceLicense.cs
- EndpointDiscoveryMetadataCD1.cs
- ListMarkerLine.cs
- Parameter.cs
- GridViewEditEventArgs.cs
- ItemsPresenter.cs
- SiteMapNodeItem.cs
- ObjectPersistData.cs
- PropertySourceInfo.cs
- DesignerAdRotatorAdapter.cs
- TabControlAutomationPeer.cs
- EntityViewGenerationAttribute.cs
- XmlBinaryReader.cs
- ImportFileRequest.cs
- HostedHttpTransportManager.cs
- SmtpNtlmAuthenticationModule.cs
- PackageFilter.cs
- FileDetails.cs
- PerformanceCounterPermission.cs
- TrackingMemoryStreamFactory.cs
- HijriCalendar.cs
- PeerNameRecordCollection.cs
- QEncodedStream.cs
- ExceptionHelpers.cs
- ListViewSelectEventArgs.cs
- DataGridColumnCollection.cs
- JulianCalendar.cs
- ChildChangedEventArgs.cs
- SecureUICommand.cs
- MsmqHostedTransportConfiguration.cs
- ViewPort3D.cs
- ConfigurationConverterBase.cs
- DefaultBinder.cs
- PageThemeCodeDomTreeGenerator.cs
- GeneralTransform2DTo3DTo2D.cs
- DefaultMergeHelper.cs