Code:
/ 4.0 / 4.0 / 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. 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
- ProjectedWrapper.cs
- PageParser.cs
- QuaternionIndependentAnimationStorage.cs
- DATA_BLOB.cs
- ProcessHost.cs
- ByteViewer.cs
- ToolBar.cs
- DeadLetterQueue.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- InkCanvas.cs
- CacheMode.cs
- XPathSelectionIterator.cs
- EditorPartCollection.cs
- BitFlagsGenerator.cs
- CustomValidator.cs
- QilPatternVisitor.cs
- NamespaceEmitter.cs
- FixedFlowMap.cs
- loginstatus.cs
- SqlDataReaderSmi.cs
- TextSelection.cs
- ClearCollection.cs
- BStrWrapper.cs
- DataGridViewColumnEventArgs.cs
- ObjectStateManager.cs
- SocketInformation.cs
- XmlChoiceIdentifierAttribute.cs
- Function.cs
- CachingHintValidation.cs
- ZipIOModeEnforcingStream.cs
- ActiveXContainer.cs
- PasswordValidationException.cs
- SettingsAttributes.cs
- SqlVersion.cs
- Normalization.cs
- xmlsaver.cs
- VBIdentifierName.cs
- InputReport.cs
- XPathDocument.cs
- ReferentialConstraint.cs
- GraphicsPath.cs
- Vector3DValueSerializer.cs
- NamespaceMapping.cs
- WebPartActionVerb.cs
- ObjectViewEntityCollectionData.cs
- XmlTextReaderImplHelpers.cs
- IsolatedStorage.cs
- ResourceReader.cs
- OperatorExpressions.cs
- ToolStripDropDown.cs
- DataColumnMapping.cs
- GeometryHitTestParameters.cs
- MDIWindowDialog.cs
- Ray3DHitTestResult.cs
- ExpressionVisitor.cs
- SafeRightsManagementHandle.cs
- GetWinFXPath.cs
- WpfWebRequestHelper.cs
- SingleTagSectionHandler.cs
- ProtocolsConfigurationHandler.cs
- DataObject.cs
- SqlCacheDependencyDatabase.cs
- ReadOnlyDataSource.cs
- PeerNearMe.cs
- TableColumnCollectionInternal.cs
- LineServices.cs
- DataGridViewCellStateChangedEventArgs.cs
- SessionPageStatePersister.cs
- SchemaNamespaceManager.cs
- EnumerationRangeValidationUtil.cs
- ImageFormatConverter.cs
- ColorConverter.cs
- Condition.cs
- ZoneIdentityPermission.cs
- ChannelFactoryRefCache.cs
- WrapPanel.cs
- Scripts.cs
- CTreeGenerator.cs
- FileSystemWatcher.cs
- InstanceDataCollectionCollection.cs
- ExpressionBuilderCollection.cs
- TreeWalkHelper.cs
- FontUnitConverter.cs
- ContractNamespaceAttribute.cs
- CryptoKeySecurity.cs
- HttpCookiesSection.cs
- PrinterUnitConvert.cs
- CachedBitmap.cs
- XamlParser.cs
- OperatingSystemVersionCheck.cs
- ResourceSet.cs
- LayoutTableCell.cs
- WebServiceReceiveDesigner.cs
- PeerNameRegistration.cs
- MinMaxParagraphWidth.cs
- URLMembershipCondition.cs
- PolyBezierSegment.cs
- DocumentSequenceHighlightLayer.cs
- ObjectAnimationBase.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs