Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / TypeEnumerableViewSchema.cs / 1 / TypeEnumerableViewSchema.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design { using System; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Reflection; ////// Represents a View's schema based on a strongly typed enumerable. The /// strongly-typed row type is determined based on the indexer property /// of the enumerable. /// [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)] internal sealed class TypeEnumerableViewSchema : BaseTypeViewSchema { public TypeEnumerableViewSchema(string viewName, Type type) : base(viewName, type) { Debug.Assert(typeof(IEnumerable).IsAssignableFrom(type), String.Format(CultureInfo.InvariantCulture, "The type '{0}' does not implement System.Collections.IEnumerable.", type.FullName)); } protected override Type GetRowType(Type objectType) { // For arrays we just get the element type if (objectType.IsArray) { Debug.Assert(objectType.HasElementType, "Expected array type to have an ElementType"); Debug.Assert(objectType.GetElementType() != null, "Did not expect array type to have null ElementType"); return objectType.GetElementType(); } // Search for indexer property PropertyInfo[] properties = objectType.GetProperties(BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo pi in properties) { ParameterInfo[] indexParams = pi.GetIndexParameters(); if (indexParams.Length > 0) { // We assume that this was the only indexer, so we can immediately stop looking for more // return pi.PropertyType; } } return null; } } } // 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
- Form.cs
- TextDpi.cs
- RawStylusInputCustomDataList.cs
- RunInstallerAttribute.cs
- CqlBlock.cs
- SubMenuStyle.cs
- XmlCharType.cs
- LongCountAggregationOperator.cs
- InkCanvasInnerCanvas.cs
- WebBrowsableAttribute.cs
- CheckPair.cs
- InputElement.cs
- SqlProviderServices.cs
- ApplicationSecurityManager.cs
- ParamArrayAttribute.cs
- SecurityTokenTypes.cs
- FormattedText.cs
- HyperLinkField.cs
- SafeCoTaskMem.cs
- ProfileService.cs
- DataSourceHelper.cs
- UnsafeNativeMethods.cs
- HelpInfo.cs
- SmtpDigestAuthenticationModule.cs
- RequiredFieldValidator.cs
- TypeDescriptor.cs
- CompositeActivityTypeDescriptor.cs
- FileLogRecordHeader.cs
- SchemaTypeEmitter.cs
- FontFamilyValueSerializer.cs
- HideDisabledControlAdapter.cs
- RuleSettings.cs
- XmlNodeWriter.cs
- FrameworkPropertyMetadata.cs
- CmsInterop.cs
- DataContractJsonSerializer.cs
- CodeRemoveEventStatement.cs
- Unit.cs
- ProcessHostFactoryHelper.cs
- SchemaCollectionCompiler.cs
- WrappedReader.cs
- AttributeEmitter.cs
- MetadataPropertyvalue.cs
- SoapProtocolImporter.cs
- ProjectionPruner.cs
- WmiPutTraceRecord.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- xmlfixedPageInfo.cs
- X509WindowsSecurityToken.cs
- ImmutableDispatchRuntime.cs
- DockProviderWrapper.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- ReadOnlyHierarchicalDataSource.cs
- BrowserDefinition.cs
- StyleXamlTreeBuilder.cs
- HtmlElementEventArgs.cs
- _RequestCacheProtocol.cs
- DeclarativeCatalogPartDesigner.cs
- GridViewCellAutomationPeer.cs
- BlurBitmapEffect.cs
- HtmlCommandAdapter.cs
- WindowsListBox.cs
- XmlReflectionMember.cs
- SetUserPreferenceRequest.cs
- ArgIterator.cs
- figurelengthconverter.cs
- NamedPermissionSet.cs
- KeyConstraint.cs
- DataControlFieldCollection.cs
- OleAutBinder.cs
- ListBoxDesigner.cs
- AttributeData.cs
- LineServicesCallbacks.cs
- WinFormsComponentEditor.cs
- TrackingMemoryStream.cs
- FormsAuthenticationEventArgs.cs
- StaticExtension.cs
- PointLight.cs
- MtomMessageEncodingBindingElement.cs
- XmlReflectionMember.cs
- ImageConverter.cs
- FieldToken.cs
- ActionItem.cs
- LoopExpression.cs
- ToolStripContentPanelRenderEventArgs.cs
- SmiSettersStream.cs
- VisualStyleElement.cs
- UserInitiatedNavigationPermission.cs
- ExplicitDiscriminatorMap.cs
- EmptyEnumerator.cs
- HostDesigntimeLicenseContext.cs
- ViewStateException.cs
- XXXInfos.cs
- AssemblyResourceLoader.cs
- CodeCompiler.cs
- ConsumerConnectionPointCollection.cs
- Drawing.cs
- SqlConnectionPoolProviderInfo.cs
- StringComparer.cs
- BezierSegment.cs