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
- BaseUriHelper.cs
- ContourSegment.cs
- BeginStoryboard.cs
- ProviderException.cs
- EventListenerClientSide.cs
- UserInitiatedRoutedEventPermission.cs
- ServicePointManagerElement.cs
- Empty.cs
- ErrorFormatterPage.cs
- ConfigurationElementProperty.cs
- VSWCFServiceContractGenerator.cs
- ReflectionTypeLoadException.cs
- LocalFileSettingsProvider.cs
- XmlIlGenerator.cs
- Odbc32.cs
- IsolationInterop.cs
- Model3DGroup.cs
- Vector3dCollection.cs
- WinFormsUtils.cs
- XmlEncodedRawTextWriter.cs
- GeometryValueSerializer.cs
- DependencyPropertyConverter.cs
- XmlSchemaSimpleContent.cs
- EditorZone.cs
- SeverityFilter.cs
- OrderedDictionaryStateHelper.cs
- TextEditorMouse.cs
- AutomationPeer.cs
- ParseChildrenAsPropertiesAttribute.cs
- SqlDelegatedTransaction.cs
- NoneExcludedImageIndexConverter.cs
- DecoderNLS.cs
- RightsManagementManager.cs
- XmlEntity.cs
- EntityClassGenerator.cs
- SymmetricSecurityProtocol.cs
- ClientSettingsProvider.cs
- CriticalFinalizerObject.cs
- WorkflowInspectionServices.cs
- LinqDataView.cs
- StaticTextPointer.cs
- MetadataStore.cs
- OracleRowUpdatingEventArgs.cs
- ClientScriptManagerWrapper.cs
- SqlBooleanizer.cs
- XmlnsDictionary.cs
- LongValidator.cs
- OleDbFactory.cs
- FilterQuery.cs
- LocatorBase.cs
- JoinSymbol.cs
- GPRECTF.cs
- SystemIPGlobalStatistics.cs
- IdentifierService.cs
- SponsorHelper.cs
- DateTimeFormatInfoScanner.cs
- InvokeHandlers.cs
- AdornerLayer.cs
- UriTemplateLiteralQueryValue.cs
- ObjectItemConventionAssemblyLoader.cs
- COM2AboutBoxPropertyDescriptor.cs
- Aes.cs
- UInt16.cs
- TargetInvocationException.cs
- InputLanguageManager.cs
- TemplatePartAttribute.cs
- VersionPair.cs
- JpegBitmapDecoder.cs
- DoubleUtil.cs
- TemplatePartAttribute.cs
- Authorization.cs
- Point3DAnimationUsingKeyFrames.cs
- WinFormsComponentEditor.cs
- RegexBoyerMoore.cs
- DataGridViewLinkColumn.cs
- OverflowException.cs
- ToolboxService.cs
- Timer.cs
- ProcessModuleCollection.cs
- PlacementWorkspace.cs
- ComplexObject.cs
- BaseTemplatedMobileComponentEditor.cs
- FactorySettingsElement.cs
- OpenTypeLayoutCache.cs
- ListViewContainer.cs
- sqlmetadatafactory.cs
- RegisteredScript.cs
- WebPartCancelEventArgs.cs
- CodeObject.cs
- InitializationEventAttribute.cs
- CompressedStack.cs
- UnsafeNativeMethods.cs
- AssemblyBuilderData.cs
- UriParserTemplates.cs
- ManagedIStream.cs
- BaseProcessor.cs
- ProgressPage.cs
- IisTraceWebEventProvider.cs
- MDIWindowDialog.cs
- PaintEvent.cs