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
- TokenFactoryCredential.cs
- IntSecurity.cs
- XmlImplementation.cs
- SafeCertificateContext.cs
- XmlCountingReader.cs
- newitemfactory.cs
- SoundPlayer.cs
- StyleHelper.cs
- FileSystemEventArgs.cs
- IIS7UserPrincipal.cs
- ImageDrawing.cs
- counter.cs
- HttpProfileGroupBase.cs
- LineInfo.cs
- listitem.cs
- CheckedListBox.cs
- MatcherBuilder.cs
- DetailsViewPagerRow.cs
- TextPatternIdentifiers.cs
- SqlRowUpdatingEvent.cs
- DesignTableCollection.cs
- OleDbWrapper.cs
- GraphicsState.cs
- ImageListDesigner.cs
- RangeValidator.cs
- Delegate.cs
- LoginName.cs
- SyndicationSerializer.cs
- OLEDB_Util.cs
- BuilderPropertyEntry.cs
- SimpleFieldTemplateFactory.cs
- ProfileModule.cs
- Msec.cs
- PagesChangedEventArgs.cs
- CodeValidator.cs
- Int32RectConverter.cs
- GridItemPattern.cs
- PeerService.cs
- TcpTransportBindingElement.cs
- SqlDataSourceCommandParser.cs
- SqlClientWrapperSmiStreamChars.cs
- ContentHostHelper.cs
- SqlCommandSet.cs
- SystemGatewayIPAddressInformation.cs
- TextBoxRenderer.cs
- TypedReference.cs
- FloaterParagraph.cs
- WindowsStatusBar.cs
- CodeGenerator.cs
- BasePattern.cs
- Vector3DCollection.cs
- RtfControlWordInfo.cs
- NoPersistScope.cs
- InputLanguageProfileNotifySink.cs
- ArrayHelper.cs
- ProgressBarRenderer.cs
- Calendar.cs
- EndpointBehaviorElement.cs
- SQLBinaryStorage.cs
- DCSafeHandle.cs
- DiscoveryClientDuplexChannel.cs
- TrackBar.cs
- ReadContentAsBinaryHelper.cs
- Merger.cs
- ScrollContentPresenter.cs
- DbMetaDataFactory.cs
- LoginNameDesigner.cs
- DataShape.cs
- MultitargetUtil.cs
- RepeatBehavior.cs
- MethodImplAttribute.cs
- COM2TypeInfoProcessor.cs
- DynamicFilter.cs
- BindingGroup.cs
- PageThemeCodeDomTreeGenerator.cs
- TextDecorationUnitValidation.cs
- Parameter.cs
- Win32Exception.cs
- SocketElement.cs
- KeyToListMap.cs
- TransformerTypeCollection.cs
- Converter.cs
- OdbcConnectionStringbuilder.cs
- ViewgenContext.cs
- EntitySqlQueryBuilder.cs
- DebuggerService.cs
- isolationinterop.cs
- CompareValidator.cs
- EditorPartCollection.cs
- EpmHelper.cs
- ConnectionAcceptor.cs
- RayMeshGeometry3DHitTestResult.cs
- GroupBox.cs
- WebPartDescriptionCollection.cs
- MetafileHeaderWmf.cs
- ControlIdConverter.cs
- XmlSubtreeReader.cs
- UriTemplatePathSegment.cs
- TaskFormBase.cs
- ThrowOnMultipleAssignment.cs