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
- EdmType.cs
- TemplateEditingService.cs
- LicenseException.cs
- EntityDataSourceMemberPath.cs
- SymbolEqualComparer.cs
- SafeRightsManagementSessionHandle.cs
- DesignerAutoFormat.cs
- SymmetricAlgorithm.cs
- FixedSOMSemanticBox.cs
- AppSecurityManager.cs
- TypeLoadException.cs
- MediaEntryAttribute.cs
- MarkerProperties.cs
- TextTreeTextElementNode.cs
- BuildProvider.cs
- WmlImageAdapter.cs
- WarningException.cs
- SamlNameIdentifierClaimResource.cs
- CallbackDebugElement.cs
- HttpCapabilitiesBase.cs
- ScriptResourceMapping.cs
- DataControlPagerLinkButton.cs
- SourceFilter.cs
- DataServiceRequestOfT.cs
- DispatchWrapper.cs
- Win32KeyboardDevice.cs
- DefaultBindingPropertyAttribute.cs
- RtfControlWordInfo.cs
- FileVersionInfo.cs
- ConfigXmlWhitespace.cs
- BamlBinaryReader.cs
- ViewService.cs
- ProtocolInformationReader.cs
- ByteRangeDownloader.cs
- RightsManagementEncryptedStream.cs
- DoubleConverter.cs
- LoginDesignerUtil.cs
- CompilerScopeManager.cs
- SoapSchemaMember.cs
- ReversePositionQuery.cs
- RuleInfoComparer.cs
- GeometryConverter.cs
- PassportIdentity.cs
- RoutedEventConverter.cs
- MouseEvent.cs
- ViewDesigner.cs
- BuildProviderAppliesToAttribute.cs
- Rss20FeedFormatter.cs
- xsdvalidator.cs
- SqlTrackingQuery.cs
- TokenCreationException.cs
- CodeAttributeArgument.cs
- PasswordTextNavigator.cs
- Sentence.cs
- SendMailErrorEventArgs.cs
- TextFormatterImp.cs
- WebPartActionVerb.cs
- MenuItem.cs
- ProcessModuleDesigner.cs
- DrawTreeNodeEventArgs.cs
- NativeCppClassAttribute.cs
- nulltextcontainer.cs
- StylusPointPropertyUnit.cs
- HelpOperationInvoker.cs
- HostingPreferredMapPath.cs
- TransformedBitmap.cs
- RecipientInfo.cs
- ConstantExpression.cs
- RowCache.cs
- GPRECTF.cs
- ValidatedControlConverter.cs
- OdbcDataReader.cs
- MethodBuilderInstantiation.cs
- LocationReference.cs
- TreeView.cs
- IndexedEnumerable.cs
- X509AsymmetricSecurityKey.cs
- BooleanStorage.cs
- Point4D.cs
- DashStyle.cs
- Classification.cs
- CodeStatementCollection.cs
- StrokeCollectionDefaultValueFactory.cs
- HighlightComponent.cs
- SqlFileStream.cs
- XmlEncodedRawTextWriter.cs
- PopupControlService.cs
- StylusButton.cs
- VoiceInfo.cs
- TextSpanModifier.cs
- TextDocumentView.cs
- BaseAppDomainProtocolHandler.cs
- BezierSegment.cs
- UnsafeNativeMethods.cs
- GlyphManager.cs
- SubMenuStyle.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- TranslateTransform3D.cs
- DefaultObjectMappingItemCollection.cs
- Single.cs