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
- IdentifierService.cs
- HtmlGenericControl.cs
- ControlUtil.cs
- SystemDiagnosticsSection.cs
- PassportPrincipal.cs
- CultureTable.cs
- FlowLayout.cs
- DiagnosticsConfigurationHandler.cs
- TraceContext.cs
- cookieexception.cs
- LogReservationCollection.cs
- HyperLinkStyle.cs
- activationcontext.cs
- XmlLinkedNode.cs
- Stroke.cs
- ProtocolViolationException.cs
- HandlerMappingMemo.cs
- XmlSchemaSimpleContentExtension.cs
- XamlSerializationHelper.cs
- Membership.cs
- PreloadedPackages.cs
- RequestResizeEvent.cs
- ColorKeyFrameCollection.cs
- EmptyEnumerator.cs
- FeatureSupport.cs
- RewritingSimplifier.cs
- StreamWithDictionary.cs
- UriSection.cs
- XmlSchemaCollection.cs
- EnumType.cs
- PackagePart.cs
- NamespaceQuery.cs
- ObjectDataSourceDisposingEventArgs.cs
- CollectionView.cs
- DesignerView.Commands.cs
- RegistryPermission.cs
- KeyValueConfigurationElement.cs
- Attributes.cs
- PolyLineSegment.cs
- ObjectAnimationBase.cs
- DoubleAnimationClockResource.cs
- ColumnCollection.cs
- ProviderUtil.cs
- Vector3D.cs
- SamlSecurityToken.cs
- ToolStripDropDownButton.cs
- ResizeGrip.cs
- ObjectAssociationEndMapping.cs
- sqlstateclientmanager.cs
- Vector3DAnimation.cs
- SkipStoryboardToFill.cs
- ListBoxAutomationPeer.cs
- MetadataArtifactLoaderCompositeResource.cs
- IBuiltInEvidence.cs
- UTF32Encoding.cs
- MimeAnyImporter.cs
- GridErrorDlg.cs
- TableAdapterManagerNameHandler.cs
- StylusPointProperty.cs
- PlatformCulture.cs
- ContextDataSource.cs
- Queue.cs
- ProfessionalColorTable.cs
- QuadraticBezierSegment.cs
- SizeValueSerializer.cs
- DependencyStoreSurrogate.cs
- DataObjectFieldAttribute.cs
- DebugView.cs
- Queue.cs
- XmlAttributeCache.cs
- SystemTcpStatistics.cs
- EncoderParameters.cs
- SpecialFolderEnumConverter.cs
- SizeIndependentAnimationStorage.cs
- IOException.cs
- WsatTransactionHeader.cs
- InputReferenceExpression.cs
- HTMLTagNameToTypeMapper.cs
- MissingMethodException.cs
- DataGridBoolColumn.cs
- SqlParameter.cs
- LateBoundChannelParameterCollection.cs
- PieceDirectory.cs
- DataBindingsDialog.cs
- HttpHandlersSection.cs
- MailMessage.cs
- Int32Collection.cs
- LinqDataView.cs
- NavigateEvent.cs
- CapabilitiesUse.cs
- _RequestCacheProtocol.cs
- _HeaderInfo.cs
- DbConnectionInternal.cs
- VisualStyleTypesAndProperties.cs
- BinaryCommonClasses.cs
- DesignBindingEditor.cs
- UnSafeCharBuffer.cs
- CompiledQuery.cs
- ScriptBehaviorDescriptor.cs
- SoapCodeExporter.cs