Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeExtensionConverter.cs
- COM2PropertyPageUITypeConverter.cs
- TripleDESCryptoServiceProvider.cs
- WindowsIdentity.cs
- CodeMemberMethod.cs
- MetadataPropertyvalue.cs
- FontFamily.cs
- ScriptControlDescriptor.cs
- ThreadAttributes.cs
- ToolStripGripRenderEventArgs.cs
- EllipseGeometry.cs
- ToolStripContentPanelDesigner.cs
- NumericExpr.cs
- ReferencedType.cs
- PlatformCulture.cs
- IconConverter.cs
- ClientOptions.cs
- _RequestCacheProtocol.cs
- InvalidPrinterException.cs
- baseaxisquery.cs
- FormatterServicesNoSerializableCheck.cs
- Button.cs
- SvcMapFileSerializer.cs
- Rotation3D.cs
- DelegatingTypeDescriptionProvider.cs
- SqlDataSourceAdvancedOptionsForm.cs
- X509WindowsSecurityToken.cs
- TextElementEnumerator.cs
- AssertSection.cs
- SourceChangedEventArgs.cs
- ParserExtension.cs
- AdornerDecorator.cs
- MatrixIndependentAnimationStorage.cs
- AudioBase.cs
- ScriptingWebServicesSectionGroup.cs
- Touch.cs
- Int64Animation.cs
- BufferModesCollection.cs
- TransformGroup.cs
- EditorPartChrome.cs
- XmlAttribute.cs
- OneWayChannelFactory.cs
- CorrelationManager.cs
- SoapAttributeOverrides.cs
- StringCollection.cs
- DetailsViewInsertEventArgs.cs
- TypedRowGenerator.cs
- ComponentCommands.cs
- DocumentApplicationJournalEntry.cs
- TryExpression.cs
- WebPartUtil.cs
- TabPageDesigner.cs
- XmlnsDictionary.cs
- _LocalDataStore.cs
- PolyQuadraticBezierSegment.cs
- DropShadowBitmapEffect.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- PolicyManager.cs
- FloatAverageAggregationOperator.cs
- CheckBoxField.cs
- IEnumerable.cs
- DataRowExtensions.cs
- FixedBufferAttribute.cs
- EntityReference.cs
- ModelVisual3D.cs
- Types.cs
- HtmlImage.cs
- SqlComparer.cs
- versioninfo.cs
- ChannelSettingsElement.cs
- DispatcherFrame.cs
- InputMethod.cs
- ToolTip.cs
- Rectangle.cs
- columnmapkeybuilder.cs
- WorkflowViewManager.cs
- InputBinder.cs
- DragAssistanceManager.cs
- ObjectAnimationUsingKeyFrames.cs
- SiteMapProvider.cs
- RsaSecurityToken.cs
- BitConverter.cs
- Certificate.cs
- IResourceProvider.cs
- RewritingValidator.cs
- DesignerImageAdapter.cs
- GridViewUpdateEventArgs.cs
- DoubleStorage.cs
- EntityProviderServices.cs
- PrintControllerWithStatusDialog.cs
- StreamWriter.cs
- Internal.cs
- Int16AnimationUsingKeyFrames.cs
- CachedFontFace.cs
- VarRemapper.cs
- KeyManager.cs
- dbdatarecord.cs
- TabControl.cs
- XmlIlVisitor.cs
- MediaContext.cs