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
- HttpClientCertificate.cs
- CodeCompileUnit.cs
- ValidationError.cs
- ContentControl.cs
- SplineKeyFrames.cs
- SemanticBasicElement.cs
- SerTrace.cs
- GacUtil.cs
- ConnectionPointCookie.cs
- IChannel.cs
- WebAdminConfigurationHelper.cs
- OrderPreservingMergeHelper.cs
- ToolBarDesigner.cs
- SessionState.cs
- HttpProfileGroupBase.cs
- Section.cs
- ManifestResourceInfo.cs
- ApplicationBuildProvider.cs
- ApplicationInfo.cs
- PointHitTestResult.cs
- DbDataReader.cs
- tooltip.cs
- WebServiceEnumData.cs
- DrawListViewColumnHeaderEventArgs.cs
- GenericPrincipal.cs
- ViewGenerator.cs
- PlanCompilerUtil.cs
- ArithmeticException.cs
- DesignerSerializerAttribute.cs
- GridViewDeletedEventArgs.cs
- MobilePage.cs
- WinCategoryAttribute.cs
- BookmarkEventArgs.cs
- Random.cs
- ComContractElementCollection.cs
- WindowClosedEventArgs.cs
- InstanceLockQueryResult.cs
- NetTcpSecurity.cs
- ModifiableIteratorCollection.cs
- TextViewSelectionProcessor.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- SharedPersonalizationStateInfo.cs
- ToolbarAUtomationPeer.cs
- QilXmlReader.cs
- TreeNodeBindingCollection.cs
- JsonUriDataContract.cs
- HttpListenerContext.cs
- ListContractAdapter.cs
- CodeIterationStatement.cs
- ImpersonationContext.cs
- PropertyNames.cs
- Logging.cs
- IList.cs
- OptimalTextSource.cs
- ConnectorRouter.cs
- GeneralTransformGroup.cs
- AudioLevelUpdatedEventArgs.cs
- SelectorItemAutomationPeer.cs
- XmlSchemaElement.cs
- UpdatableWrapper.cs
- UnionCodeGroup.cs
- DataServiceKeyAttribute.cs
- UpdatableGenericsFeature.cs
- ComponentResourceKey.cs
- infer.cs
- GetImportFileNameRequest.cs
- EntityType.cs
- ValueType.cs
- MonthCalendar.cs
- WCFBuildProvider.cs
- SettingsBindableAttribute.cs
- ListenerServiceInstallComponent.cs
- SafeRightsManagementQueryHandle.cs
- LayoutSettings.cs
- SQLDouble.cs
- AutoGeneratedFieldProperties.cs
- Monitor.cs
- WebPartRestoreVerb.cs
- StringSorter.cs
- _NetRes.cs
- XPathQilFactory.cs
- OleTxTransactionInfo.cs
- HandlerFactoryCache.cs
- DataServices.cs
- CanExecuteRoutedEventArgs.cs
- CFStream.cs
- CommonGetThemePartSize.cs
- HashJoinQueryOperatorEnumerator.cs
- ColumnHeader.cs
- BitmapMetadataEnumerator.cs
- MultipleViewPatternIdentifiers.cs
- ReversePositionQuery.cs
- TreeViewDesigner.cs
- UserMapPath.cs
- TypeDescriptorContext.cs
- XMLUtil.cs
- ToolStripDropDown.cs
- SimpleBitVector32.cs
- RSAPKCS1KeyExchangeFormatter.cs
- Html32TextWriter.cs