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
- DocumentViewerHelper.cs
- XPathAncestorIterator.cs
- IssuedTokenClientElement.cs
- XmlSchemaProviderAttribute.cs
- DataGridViewCellStyle.cs
- AlternationConverter.cs
- AbsoluteQuery.cs
- SmtpLoginAuthenticationModule.cs
- ObjectParameter.cs
- DefinitionUpdate.cs
- StringComparer.cs
- OracleCommandBuilder.cs
- ConfigDefinitionUpdates.cs
- ContentElement.cs
- Drawing.cs
- DescendantOverDescendantQuery.cs
- DbMetaDataFactory.cs
- RootProfilePropertySettingsCollection.cs
- ServiceHostingEnvironmentSection.cs
- DateRangeEvent.cs
- ExpressionCopier.cs
- ServiceChannelProxy.cs
- Screen.cs
- Win32SafeHandles.cs
- SafeHGlobalHandleCritical.cs
- SizeF.cs
- _OverlappedAsyncResult.cs
- MailWriter.cs
- HttpBrowserCapabilitiesBase.cs
- Column.cs
- HexParser.cs
- StyleBamlRecordReader.cs
- DbBuffer.cs
- FixedDocument.cs
- XPathExpr.cs
- SqlMethodTransformer.cs
- XPathAncestorIterator.cs
- DataGridDesigner.cs
- Composition.cs
- ProxyWebPartConnectionCollection.cs
- MatrixTransform3D.cs
- XmlDataImplementation.cs
- StackOverflowException.cs
- Journal.cs
- AutoGeneratedField.cs
- unsafeIndexingFilterStream.cs
- EncryptedPackageFilter.cs
- GlyphingCache.cs
- DocumentViewerAutomationPeer.cs
- RegexStringValidator.cs
- DiscardableAttribute.cs
- FloaterParaClient.cs
- RolePrincipal.cs
- XmlSchemaElement.cs
- StrokeNodeOperations2.cs
- FontWeights.cs
- TypeUtil.cs
- HitTestParameters.cs
- WindowCollection.cs
- StringFunctions.cs
- SQLDateTimeStorage.cs
- UnSafeCharBuffer.cs
- LocalValueEnumerator.cs
- ColorContext.cs
- PropertyNames.cs
- Environment.cs
- ProfileSettingsCollection.cs
- ObjectKeyFrameCollection.cs
- FixedElement.cs
- ExtensionElementCollection.cs
- HttpModuleAction.cs
- DocumentViewerHelper.cs
- OpenFileDialog.cs
- SchemaHelper.cs
- MetafileHeaderWmf.cs
- VisualStyleInformation.cs
- ToolboxDataAttribute.cs
- RsaSecurityToken.cs
- RoamingStoreFile.cs
- TrustManagerPromptUI.cs
- XMLSchema.cs
- SQLMembershipProvider.cs
- TransactionInterop.cs
- SudsWriter.cs
- ExecutionEngineException.cs
- StreamWithDictionary.cs
- ManifestResourceInfo.cs
- PagesSection.cs
- RbTree.cs
- RuntimeCompatibilityAttribute.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- VScrollProperties.cs
- SafeCryptHandles.cs
- BindingOperations.cs
- FormViewAutoFormat.cs
- ColorTransform.cs
- SchemaRegistration.cs
- SafeNativeMethods.cs
- CodeStatement.cs
- HtmlImage.cs