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
- GrammarBuilderWildcard.cs
- WebPartAddingEventArgs.cs
- TiffBitmapEncoder.cs
- FunctionImportElement.cs
- OleDbConnection.cs
- CultureSpecificStringDictionary.cs
- ExpressionBinding.cs
- GetImportedCardRequest.cs
- ZipPackage.cs
- FileSystemWatcher.cs
- ConfigXmlComment.cs
- SystemException.cs
- HandleCollector.cs
- Assembly.cs
- TextRunProperties.cs
- TlsnegoTokenProvider.cs
- DataKeyArray.cs
- MemoryRecordBuffer.cs
- SimpleExpression.cs
- TreeIterator.cs
- SQLUtility.cs
- WebPartCloseVerb.cs
- SecurityVerifiedMessage.cs
- DataMember.cs
- CodeDomSerializerException.cs
- XslCompiledTransform.cs
- EdmSchemaAttribute.cs
- Win32Native.cs
- ByteStack.cs
- xsdvalidator.cs
- PropertyRecord.cs
- GenericWebPart.cs
- PeerNameRecordCollection.cs
- SubstitutionList.cs
- Int32Storage.cs
- TextFragmentEngine.cs
- DbgUtil.cs
- BitVec.cs
- DataPagerFieldItem.cs
- DetailsViewPageEventArgs.cs
- Transactions.cs
- EventLogReader.cs
- XmlUtilWriter.cs
- JsonWriter.cs
- RepeatBehavior.cs
- TextSelectionProcessor.cs
- XmlExceptionHelper.cs
- TemplateManager.cs
- KoreanLunisolarCalendar.cs
- DesignOnlyAttribute.cs
- DataListItemEventArgs.cs
- ConnectivityStatus.cs
- SafeTokenHandle.cs
- CanonicalFontFamilyReference.cs
- SHA1Managed.cs
- SemanticAnalyzer.cs
- InvalidDataException.cs
- XmlTextAttribute.cs
- Panel.cs
- DbConnectionHelper.cs
- SetIndexBinder.cs
- MaskInputRejectedEventArgs.cs
- Site.cs
- NameValueConfigurationElement.cs
- SourceFilter.cs
- MemberInitExpression.cs
- AppDomain.cs
- CompiledAction.cs
- CompoundFileIOPermission.cs
- TransformGroup.cs
- Query.cs
- FileDialogPermission.cs
- EntityCommand.cs
- Operator.cs
- OciHandle.cs
- GenerateScriptTypeAttribute.cs
- StoreContentChangedEventArgs.cs
- SymLanguageType.cs
- BinaryMethodMessage.cs
- SoapFormatExtensions.cs
- StorageEntitySetMapping.cs
- DataReaderContainer.cs
- DeclarativeCatalogPart.cs
- RegistryConfigurationProvider.cs
- GACMembershipCondition.cs
- PageContentAsyncResult.cs
- Constraint.cs
- HTMLTagNameToTypeMapper.cs
- GridViewRowPresenterBase.cs
- FormattedTextSymbols.cs
- Pair.cs
- ChtmlPageAdapter.cs
- WindowsFormsEditorServiceHelper.cs
- BamlTreeUpdater.cs
- RegexStringValidatorAttribute.cs
- CodeVariableReferenceExpression.cs
- SerTrace.cs
- InlineCollection.cs
- TagPrefixAttribute.cs
- BooleanFacetDescriptionElement.cs