Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / AddIn / AddIn / System / Addin / Hosting / Store / HostAdapter.cs / 1305376 / HostAdapter.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: HostAdapter ** ** Purpose: Represents an host adapter class on disk. ** ===========================================================*/ using System; using System.IO; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using System.Reflection; using System.Text; using System.AddIn.Contract; using System.AddIn.MiniReflection; using System.Diagnostics.Contracts; namespace System.AddIn { [Serializable] internal sealed class HostAdapter : PipelineComponent { private static readonly TypeInfo typeofIContract = new TypeInfo(typeof(System.AddIn.Contract.IContract)); private TypeInfo[] _potentialHAVs; private List_constructors; public HostAdapter(TypeInfo typeInfo, String assemblyLocation) : base(typeInfo, assemblyLocation) { _constructors = new List (); } public List Constructors { get { return _constructors; } } public TypeInfo[] HostAddinViews { get { return _potentialHAVs; } } public override string ToString() { return String.Format(CultureInfo.CurrentCulture, Res.HostAdapterToString, Name, BestAvailableLocation); } internal override bool Validate(TypeInfo type, Collection warnings) { _potentialHAVs = FindBaseTypesAndInterfaces(type); if (_potentialHAVs.Length == 0) { return false; } foreach (MiniConstructorInfo ci in type.GetConstructors(true)) { MiniParameterInfo[] pars = ci.GetParameters(); if (pars.Length != 1) { warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.HostAdapterUnusableCtorMultipleParams, type.AssemblyQualifiedName)); continue; } TypeInfo paramType = pars[0].ParameterType; bool success = false; try { if (paramType.IsInterface && (paramType.Implements(typeofIContract))) { _constructors.Add(paramType); success = true; } } catch (FileNotFoundException) { } catch (FileLoadException) { // Can happen for a constructor taking a type that isn't in mscorlib nor System.AddIn.Contract, and // also isn't in any of the directories that we would probe. } if (!success) { warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.HostAdapterUnusableCtorBadParam, type.AssemblyQualifiedName, paramType.FullName)); continue; } } if (_constructors.Count == 0) { warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.HostAdapterNoValidCtors, type.AssemblyQualifiedName)); return false; } return base.Validate(type, warnings); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: HostAdapter ** ** Purpose: Represents an host adapter class on disk. ** ===========================================================*/ using System; using System.IO; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using System.Reflection; using System.Text; using System.AddIn.Contract; using System.AddIn.MiniReflection; using System.Diagnostics.Contracts; namespace System.AddIn { [Serializable] internal sealed class HostAdapter : PipelineComponent { private static readonly TypeInfo typeofIContract = new TypeInfo(typeof(System.AddIn.Contract.IContract)); private TypeInfo[] _potentialHAVs; private List _constructors; public HostAdapter(TypeInfo typeInfo, String assemblyLocation) : base(typeInfo, assemblyLocation) { _constructors = new List (); } public List Constructors { get { return _constructors; } } public TypeInfo[] HostAddinViews { get { return _potentialHAVs; } } public override string ToString() { return String.Format(CultureInfo.CurrentCulture, Res.HostAdapterToString, Name, BestAvailableLocation); } internal override bool Validate(TypeInfo type, Collection warnings) { _potentialHAVs = FindBaseTypesAndInterfaces(type); if (_potentialHAVs.Length == 0) { return false; } foreach (MiniConstructorInfo ci in type.GetConstructors(true)) { MiniParameterInfo[] pars = ci.GetParameters(); if (pars.Length != 1) { warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.HostAdapterUnusableCtorMultipleParams, type.AssemblyQualifiedName)); continue; } TypeInfo paramType = pars[0].ParameterType; bool success = false; try { if (paramType.IsInterface && (paramType.Implements(typeofIContract))) { _constructors.Add(paramType); success = true; } } catch (FileNotFoundException) { } catch (FileLoadException) { // Can happen for a constructor taking a type that isn't in mscorlib nor System.AddIn.Contract, and // also isn't in any of the directories that we would probe. } if (!success) { warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.HostAdapterUnusableCtorBadParam, type.AssemblyQualifiedName, paramType.FullName)); continue; } } if (_constructors.Count == 0) { warnings.Add(String.Format(CultureInfo.CurrentCulture, Res.HostAdapterNoValidCtors, type.AssemblyQualifiedName)); return false; } return base.Validate(type, warnings); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QueryReaderSettings.cs
- BrushValueSerializer.cs
- BlurBitmapEffect.cs
- MouseDevice.cs
- TraversalRequest.cs
- AsyncDataRequest.cs
- ViewService.cs
- IISMapPath.cs
- ObjectConverter.cs
- UnaryNode.cs
- VectorAnimationUsingKeyFrames.cs
- SpellerHighlightLayer.cs
- PolyBezierSegment.cs
- XmlCollation.cs
- Soap.cs
- XslAst.cs
- ExpressionQuoter.cs
- DirtyTextRange.cs
- ContentType.cs
- backend.cs
- ReferentialConstraint.cs
- IncrementalReadDecoders.cs
- CodeSnippetExpression.cs
- MimeObjectFactory.cs
- AssertSection.cs
- TreeViewItemAutomationPeer.cs
- AutoGeneratedField.cs
- EdmPropertyAttribute.cs
- TableProviderWrapper.cs
- HScrollBar.cs
- CharEnumerator.cs
- TextAdaptor.cs
- EdmProviderManifest.cs
- TimelineClockCollection.cs
- DataExpression.cs
- configsystem.cs
- XmlDataCollection.cs
- OpenTypeCommon.cs
- XmlNodeList.cs
- CodeGroup.cs
- FunctionDetailsReader.cs
- OleDbTransaction.cs
- AuthorizationRule.cs
- BuildTopDownAttribute.cs
- CustomAttributeFormatException.cs
- BitmapEffectvisualstate.cs
- NativeMethods.cs
- BitmapEffectDrawingContent.cs
- XsdBuildProvider.cs
- Button.cs
- TabControlEvent.cs
- OrderedDictionary.cs
- SafeMILHandleMemoryPressure.cs
- EndPoint.cs
- _Win32.cs
- UserPreferenceChangedEventArgs.cs
- ServiceContractListItemList.cs
- KeyNotFoundException.cs
- ReflectionPermission.cs
- RowBinding.cs
- MimeObjectFactory.cs
- DataControlLinkButton.cs
- SafeRightsManagementQueryHandle.cs
- ReadOnlyCollectionBase.cs
- SecurityManager.cs
- AssemblyBuilder.cs
- SimpleLine.cs
- Canvas.cs
- XmlWhitespace.cs
- QuaternionRotation3D.cs
- DataGridViewCellStyle.cs
- QilUnary.cs
- ListControlDataBindingHandler.cs
- AsymmetricAlgorithm.cs
- HashHelper.cs
- FormatterServices.cs
- ContentPlaceHolder.cs
- DefaultWorkflowLoaderService.cs
- NameTable.cs
- InertiaExpansionBehavior.cs
- Setter.cs
- CompatibleIComparer.cs
- WhitespaceSignificantCollectionAttribute.cs
- DrawingContextDrawingContextWalker.cs
- QueueProcessor.cs
- SiteMapDataSourceDesigner.cs
- BaseInfoTable.cs
- MonitorWrapper.cs
- DBSchemaTable.cs
- DbProviderSpecificTypePropertyAttribute.cs
- TextElementCollectionHelper.cs
- XmlAttributeCache.cs
- ConfigurationErrorsException.cs
- WinFormsComponentEditor.cs
- VisualBasicValue.cs
- Gdiplus.cs
- ColorDialog.cs
- ToolStrip.cs
- CodeSnippetTypeMember.cs
- BaseTemplateBuildProvider.cs