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
- DbBuffer.cs
- ArrangedElementCollection.cs
- VisualStyleTypesAndProperties.cs
- serverconfig.cs
- ConstraintManager.cs
- IDispatchConstantAttribute.cs
- WebPartConnectionsConnectVerb.cs
- FileLevelControlBuilderAttribute.cs
- ServiceContractGenerationContext.cs
- WebErrorHandler.cs
- ConditionalAttribute.cs
- RtfNavigator.cs
- WebDescriptionAttribute.cs
- BitStack.cs
- FaultCode.cs
- ByteFacetDescriptionElement.cs
- BinaryNode.cs
- ControlCodeDomSerializer.cs
- DataObject.cs
- DelegateBodyWriter.cs
- UIElementAutomationPeer.cs
- SystemWebSectionGroup.cs
- RequestSecurityTokenResponseCollection.cs
- SqlTrackingWorkflowInstance.cs
- Link.cs
- Queue.cs
- FilePresentation.cs
- DataSetFieldSchema.cs
- ScrollItemProviderWrapper.cs
- DomainUpDown.cs
- DeclaredTypeValidatorAttribute.cs
- WindowsIPAddress.cs
- DomainLiteralReader.cs
- Int64AnimationBase.cs
- ConfigXmlElement.cs
- PageThemeCodeDomTreeGenerator.cs
- DataGridViewCellStyle.cs
- MetadataItemEmitter.cs
- EdmSchemaError.cs
- WebPartVerb.cs
- ReadOnlyTernaryTree.cs
- AuthenticationManager.cs
- XsltInput.cs
- FrameworkContentElement.cs
- ComboBoxRenderer.cs
- AngleUtil.cs
- WebPartManager.cs
- Int64Storage.cs
- LocationReference.cs
- PrinterUnitConvert.cs
- WebMethodAttribute.cs
- TagPrefixInfo.cs
- DataServiceRequest.cs
- XmlTextReaderImplHelpers.cs
- AggregateException.cs
- PingOptions.cs
- _LocalDataStore.cs
- StreamInfo.cs
- dataprotectionpermission.cs
- IOException.cs
- IsolatedStorageFilePermission.cs
- DockPatternIdentifiers.cs
- BaseDataBoundControl.cs
- SmtpReplyReaderFactory.cs
- DependencyObjectPropertyDescriptor.cs
- XmlCharType.cs
- StringArrayConverter.cs
- SplitterPanel.cs
- TextTreeObjectNode.cs
- ChtmlImageAdapter.cs
- CalendarDateRangeChangingEventArgs.cs
- SequentialOutput.cs
- DataPagerFieldCommandEventArgs.cs
- XmlAttributeProperties.cs
- WindowsButton.cs
- MethodBuilderInstantiation.cs
- ErrorStyle.cs
- ResourceProperty.cs
- CookielessHelper.cs
- RSAOAEPKeyExchangeDeformatter.cs
- TextEditor.cs
- AutoSizeToolBoxItem.cs
- CodeTypeParameter.cs
- Encoder.cs
- GetRecipientListRequest.cs
- Rect.cs
- IItemContainerGenerator.cs
- ViewBase.cs
- FileSystemEventArgs.cs
- RoleManagerEventArgs.cs
- ShapeTypeface.cs
- ListViewUpdatedEventArgs.cs
- ReflectEventDescriptor.cs
- HttpWebRequestElement.cs
- BuildDependencySet.cs
- PreviewPageInfo.cs
- SerializationException.cs
- RightsManagementPermission.cs
- GenericPrincipal.cs
- HttpModuleCollection.cs