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
- Vector3DAnimation.cs
- NavigationPropertyEmitter.cs
- TextModifier.cs
- HtmlEncodedRawTextWriter.cs
- SynchronizationContext.cs
- XsdDuration.cs
- DefaultAuthorizationContext.cs
- DocumentApplicationJournalEntry.cs
- AttributeUsageAttribute.cs
- XpsDocument.cs
- HelpEvent.cs
- WindowsToolbarItemAsMenuItem.cs
- XmlSchemaObject.cs
- WrappedKeySecurityTokenParameters.cs
- RenderCapability.cs
- ClientConvert.cs
- ScriptReferenceBase.cs
- BmpBitmapEncoder.cs
- GacUtil.cs
- DeclaredTypeElement.cs
- ProcessHostServerConfig.cs
- ProfilePropertyNameValidator.cs
- Opcode.cs
- Point3DKeyFrameCollection.cs
- RequestResizeEvent.cs
- ToolBar.cs
- ScriptResourceAttribute.cs
- CallContext.cs
- TablePattern.cs
- QueueSurrogate.cs
- SQLCharsStorage.cs
- ConnectionManagementElementCollection.cs
- AnnotationMap.cs
- StreamGeometry.cs
- DbSource.cs
- ReachDocumentReferenceSerializer.cs
- PieceNameHelper.cs
- RequestTimeoutManager.cs
- SelectorAutomationPeer.cs
- BypassElementCollection.cs
- EnterpriseServicesHelper.cs
- UIAgentInitializationException.cs
- NaturalLanguageHyphenator.cs
- OrderPreservingPipeliningMergeHelper.cs
- ServiceOperationParameter.cs
- SplashScreenNativeMethods.cs
- ReceiveContextCollection.cs
- DataKeyArray.cs
- Odbc32.cs
- DefaultDialogButtons.cs
- SQLInt64Storage.cs
- DesigntimeLicenseContext.cs
- PropertyDescriptors.cs
- DodSequenceMerge.cs
- HtmlTextArea.cs
- WebServiceData.cs
- SaveFileDialog.cs
- TypeUsage.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- ObjectItemLoadingSessionData.cs
- SqlException.cs
- Metadata.cs
- UnsafeNativeMethods.cs
- HttpCapabilitiesEvaluator.cs
- DesignerInterfaces.cs
- GregorianCalendar.cs
- DeclarativeCatalogPart.cs
- ThicknessAnimationUsingKeyFrames.cs
- SudsCommon.cs
- XmlEncoding.cs
- CollaborationHelperFunctions.cs
- DBAsyncResult.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- EntityContainerRelationshipSetEnd.cs
- UnmanagedBitmapWrapper.cs
- SoapTypeAttribute.cs
- ServerValidateEventArgs.cs
- ThreadStaticAttribute.cs
- SetterBaseCollection.cs
- DataGridColumnCollectionEditor.cs
- FileCodeGroup.cs
- Enum.cs
- MediaTimeline.cs
- Quaternion.cs
- WebSysDisplayNameAttribute.cs
- ConstructorBuilder.cs
- LineGeometry.cs
- SynthesizerStateChangedEventArgs.cs
- XsltArgumentList.cs
- XslException.cs
- EvidenceBase.cs
- Evaluator.cs
- RolePrincipal.cs
- ServerValidateEventArgs.cs
- SrgsDocumentParser.cs
- InvariantComparer.cs
- ValidationRuleCollection.cs
- Point.cs
- dsa.cs
- TimeSpanSecondsConverter.cs