Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Compilation / ClientBuildManagerTypeDescriptionProviderBridge.cs / 1305376 / ClientBuildManagerTypeDescriptionProviderBridge.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Reflection; using System.Web.Util; ////// This is a helper class lives in the VS appdomain where the CBM is created, and passed into the CBM-hosted appdomain /// to allow cross-appdomain calls to get filtered runtime member information. /// internal class ClientBuildManagerTypeDescriptionProviderBridge : MarshalByRefObject { private TypeDescriptionProvider _targetFrameworkProvider; internal ClientBuildManagerTypeDescriptionProviderBridge(TypeDescriptionProvider typeDescriptionProvider) { _targetFrameworkProvider = typeDescriptionProvider; } public override Object InitializeLifetimeService() { return null; // never expire lease } private Type GetReflectionType(Type type) { Debug.Assert(_targetFrameworkProvider != null, "_targetFrameworkProvider should not be null"); if (type == null) { return null; } return _targetFrameworkProvider.GetReflectionType(type); } internal bool HasProperty(Type type, string name, BindingFlags bindingAttr) { if (_targetFrameworkProvider == null) { PropertyInfo runtimePropInfo = type.GetProperty(name, bindingAttr); return runtimePropInfo != null; } Type reflectionType = GetReflectionType(type); PropertyInfo reflectionPropertyInfo = reflectionType.GetProperty(name, bindingAttr); return reflectionPropertyInfo != null; } internal bool HasField(Type type, string name, BindingFlags bindingAttr) { if (_targetFrameworkProvider == null) { FieldInfo runtimeFieldInfo = type.GetField(name, bindingAttr); return runtimeFieldInfo != null; } Type reflectionType = _targetFrameworkProvider.GetReflectionType(type); FieldInfo reflectionFieldInfo = reflectionType.GetField(name, bindingAttr); return reflectionFieldInfo != null; } internal bool HasEvent(Type type, string name) { if (_targetFrameworkProvider == null) { EventInfo runtimeEventInfo = type.GetEvent(name); return runtimeEventInfo != null; } Type reflectionType = _targetFrameworkProvider.GetReflectionType(type); EventInfo reflectionEventInfo = reflectionType.GetEvent(name); return reflectionEventInfo != null; } private string[] GetMemberNames(MemberInfo[] members) { var names = from m in members select m.Name; return names.ToArray(); } internal bool HasMethod(Type type, string name, BindingFlags bindingAttr) { Type reflectionType = type; if (_targetFrameworkProvider != null) { reflectionType = GetReflectionType(type); } MethodInfo methodInfo = reflectionType.GetMethod(name, bindingAttr); return methodInfo != null; } internal string[] GetFilteredProperties(Type type, BindingFlags bindingFlags) { PropertyInfo[] runtimeProperties = type.GetProperties(bindingFlags); if (_targetFrameworkProvider == null) { return GetMemberNames(runtimeProperties); } Type reflectionType = _targetFrameworkProvider.GetReflectionType(type); PropertyInfo[] reflectionProperties = reflectionType.GetProperties(bindingFlags); var reflectionPropertyNames = from p in reflectionProperties select p.Name; return (from p in runtimeProperties where reflectionPropertyNames.Contains(p.Name) select p.Name).ToArray(); } internal string[] GetFilteredEvents(Type type, BindingFlags bindingFlags) { EventInfo[] runtimeEvents= type.GetEvents(bindingFlags); if (_targetFrameworkProvider == null) { return GetMemberNames(runtimeEvents); } Type reflectionType = _targetFrameworkProvider.GetReflectionType(type); EventInfo[] reflectionEvents= reflectionType.GetEvents(bindingFlags); var reflectionEventNames = from e in reflectionEvents select e.Name; return (from e in runtimeEvents where reflectionEventNames.Contains(e.Name) select e.Name).ToArray(); } } // 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
- DesignerActionList.cs
- InternalTypeHelper.cs
- EditorPartDesigner.cs
- NonVisualControlAttribute.cs
- DataGridViewRowsAddedEventArgs.cs
- _LocalDataStoreMgr.cs
- StoreContentChangedEventArgs.cs
- SecurityResources.cs
- DataError.cs
- PathGradientBrush.cs
- WebPartTransformerCollection.cs
- HttpApplication.cs
- DataGridViewControlCollection.cs
- Rotation3DAnimation.cs
- DesignerForm.cs
- UIPermission.cs
- XpsFixedPageReaderWriter.cs
- ColumnCollection.cs
- TcpHostedTransportConfiguration.cs
- SqlInternalConnectionTds.cs
- CompModHelpers.cs
- SqlRewriteScalarSubqueries.cs
- TextRangeBase.cs
- DataGridHelper.cs
- ValueSerializerAttribute.cs
- WebPartDescription.cs
- AssemblyNameUtility.cs
- AttributeTable.cs
- ValuePattern.cs
- FieldMetadata.cs
- _AutoWebProxyScriptWrapper.cs
- SafeNativeMethods.cs
- DataContractSerializer.cs
- Script.cs
- HtmlFormWrapper.cs
- UserMapPath.cs
- SqlConnectionPoolProviderInfo.cs
- Calendar.cs
- SelectionProcessor.cs
- QilLoop.cs
- TrackingStringDictionary.cs
- RTLAwareMessageBox.cs
- ProfilePropertyNameValidator.cs
- CommandHelpers.cs
- ClientScriptManagerWrapper.cs
- dsa.cs
- ServiceModelEnumValidatorAttribute.cs
- EmissiveMaterial.cs
- CryptoApi.cs
- ScrollBar.cs
- PerfService.cs
- SemaphoreSecurity.cs
- WebPartConnectionsConfigureVerb.cs
- SystemPens.cs
- ServiceNameElement.cs
- LostFocusEventManager.cs
- DataGridViewEditingControlShowingEventArgs.cs
- keycontainerpermission.cs
- SecurityTokenProvider.cs
- RegexMatch.cs
- WebBaseEventKeyComparer.cs
- BaseDataBoundControl.cs
- AttributeExtensions.cs
- XmlCharCheckingReader.cs
- XPathAncestorQuery.cs
- StringValueSerializer.cs
- FieldBuilder.cs
- BufferModeSettings.cs
- ExceptionUtility.cs
- XmlMessageFormatter.cs
- Bits.cs
- ScrollEvent.cs
- IISMapPath.cs
- TextTreeInsertElementUndoUnit.cs
- ZipIOLocalFileDataDescriptor.cs
- SchemaInfo.cs
- hresults.cs
- SelectionHighlightInfo.cs
- UserPreferenceChangedEventArgs.cs
- ExpressionParser.cs
- DLinqColumnProvider.cs
- GuidTagList.cs
- Compiler.cs
- DataServiceQueryException.cs
- HeaderCollection.cs
- GridView.cs
- ByteConverter.cs
- Panel.cs
- RTTypeWrapper.cs
- TraversalRequest.cs
- CustomBindingElement.cs
- AssemblyBuilderData.cs
- ConfigurationException.cs
- CodeCompiler.cs
- StatusBar.cs
- NumericUpDownAcceleration.cs
- TypedTableBaseExtensions.cs
- TypeDependencyAttribute.cs
- TreeWalker.cs
- WebColorConverter.cs