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
- NameSpaceExtractor.cs
- MethodCallTranslator.cs
- StaticSiteMapProvider.cs
- XPathArrayIterator.cs
- GridViewDeleteEventArgs.cs
- AtomicFile.cs
- FixedStringLookup.cs
- __Error.cs
- ListViewTableRow.cs
- CustomPopupPlacement.cs
- PrinterUnitConvert.cs
- HttpSessionStateBase.cs
- SectionXmlInfo.cs
- MediaPlayer.cs
- ConnectivityStatus.cs
- ObjectStorage.cs
- FixedFindEngine.cs
- HttpRequestBase.cs
- CodeIterationStatement.cs
- BmpBitmapDecoder.cs
- SamlDoNotCacheCondition.cs
- XDeferredAxisSource.cs
- PtsHelper.cs
- TextRangeEditTables.cs
- QuestionEventArgs.cs
- EventLogQuery.cs
- DefaultShape.cs
- SchemaEntity.cs
- FixedPageStructure.cs
- BufferedStream.cs
- SystemIPInterfaceStatistics.cs
- InteropBitmapSource.cs
- JapaneseLunisolarCalendar.cs
- InvokeMethod.cs
- PathFigureCollectionValueSerializer.cs
- DomNameTable.cs
- DependencyObjectProvider.cs
- ContextMenu.cs
- RectangleHotSpot.cs
- Win32MouseDevice.cs
- IResourceProvider.cs
- AtomicFile.cs
- Message.cs
- ObjectFullSpanRewriter.cs
- ListViewDeletedEventArgs.cs
- RegistrySecurity.cs
- PageBreakRecord.cs
- WebResourceAttribute.cs
- BrushMappingModeValidation.cs
- RequiredAttributeAttribute.cs
- ResolveRequestResponseAsyncResult.cs
- Membership.cs
- ProvideValueServiceProvider.cs
- XMLUtil.cs
- ProcessInfo.cs
- QueryException.cs
- FunctionCommandText.cs
- RequestCachingSection.cs
- XmlCharCheckingWriter.cs
- TextElementEnumerator.cs
- BitmapScalingModeValidation.cs
- OverflowException.cs
- PageRanges.cs
- SqlProfileProvider.cs
- IisTraceWebEventProvider.cs
- CodeParameterDeclarationExpressionCollection.cs
- GeometryDrawing.cs
- PartialCachingAttribute.cs
- SamlSubjectStatement.cs
- SqlBulkCopy.cs
- SignatureDescription.cs
- WeakEventTable.cs
- DocumentXPathNavigator.cs
- NumberSubstitution.cs
- StaticTextPointer.cs
- SqlConnectionPoolGroupProviderInfo.cs
- httpserverutility.cs
- parserscommon.cs
- AdornerLayer.cs
- WebUtil.cs
- ConfigPathUtility.cs
- BuildManager.cs
- ScriptReferenceEventArgs.cs
- ShapeTypeface.cs
- BezierSegment.cs
- FontStretches.cs
- SafeUserTokenHandle.cs
- HtmlTextArea.cs
- DiagnosticTraceSource.cs
- FormsIdentity.cs
- WebProxyScriptElement.cs
- FileRecordSequence.cs
- X509Utils.cs
- updateconfighost.cs
- ListControl.cs
- WasEndpointConfigContainer.cs
- XmlSchemaSimpleContentExtension.cs
- Exception.cs
- Sequence.cs
- Sentence.cs