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
- XmlWellformedWriter.cs
- Attachment.cs
- documentsequencetextpointer.cs
- ManagedFilter.cs
- OdbcConnection.cs
- Module.cs
- SqlAggregateChecker.cs
- AQNBuilder.cs
- InputElement.cs
- FormatterConverter.cs
- DataGridViewColumnConverter.cs
- PseudoWebRequest.cs
- CustomCategoryAttribute.cs
- StylusButtonCollection.cs
- Int64.cs
- StrokeCollection2.cs
- ImageListImageEditor.cs
- AutomationElementCollection.cs
- CompositeActivityCodeGenerator.cs
- XmlUrlResolver.cs
- XmlSubtreeReader.cs
- GraphicsContainer.cs
- DocumentApplication.cs
- EntityKey.cs
- SimpleExpression.cs
- EntityDescriptor.cs
- EdmError.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SqlNotificationEventArgs.cs
- DoubleIndependentAnimationStorage.cs
- XmlRawWriter.cs
- AstNode.cs
- WebEventTraceProvider.cs
- SequentialUshortCollection.cs
- XmlSchemaSimpleContent.cs
- OperationAbortedException.cs
- ProxyHelper.cs
- Hashtable.cs
- Ray3DHitTestResult.cs
- RangeValidator.cs
- EntityParameter.cs
- BrowserInteropHelper.cs
- TogglePattern.cs
- PeerResolverMode.cs
- DefaultWorkflowSchedulerService.cs
- CharAnimationBase.cs
- SecurityManager.cs
- OLEDB_Util.cs
- DiscoveryClientChannelBase.cs
- ConfigXmlWhitespace.cs
- GridViewColumnHeader.cs
- AnimationTimeline.cs
- WeakEventManager.cs
- SmiTypedGetterSetter.cs
- VisualBrush.cs
- OdbcConnectionStringbuilder.cs
- TimeManager.cs
- ClusterRegistryConfigurationProvider.cs
- StylusDownEventArgs.cs
- NativeMethods.cs
- TableAdapterManagerHelper.cs
- DecimalConverter.cs
- SqlDataSourceParameterParser.cs
- XmlDocument.cs
- NameValuePair.cs
- metadatamappinghashervisitor.cs
- OptimizerPatterns.cs
- StrongNameHelpers.cs
- Span.cs
- Parser.cs
- SspiNegotiationTokenProviderState.cs
- NativeMethods.cs
- ListViewUpdatedEventArgs.cs
- CaseInsensitiveOrdinalStringComparer.cs
- MouseGestureConverter.cs
- UnsafeCollabNativeMethods.cs
- PackWebResponse.cs
- SqlResolver.cs
- ScriptResourceHandler.cs
- _NegoState.cs
- XmlReflectionMember.cs
- RealizedColumnsBlock.cs
- DataGridRowHeader.cs
- Effect.cs
- CodeSnippetCompileUnit.cs
- ApplicationInfo.cs
- SoapReflectionImporter.cs
- AttributeEmitter.cs
- StylusPointProperty.cs
- PkcsUtils.cs
- StreamGeometryContext.cs
- FacetValueContainer.cs
- GetReadStreamResult.cs
- FindProgressChangedEventArgs.cs
- TextEditorCharacters.cs
- Internal.cs
- BufferedGraphicsContext.cs
- Accessible.cs
- UnknownWrapper.cs
- TextBox.cs