Code:
/ 4.0 / 4.0 / 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. // ==++== // // 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
- ExpressionVisitor.cs
- EventListener.cs
- CfgArc.cs
- WindowsComboBox.cs
- UrlPropertyAttribute.cs
- ServiceModelPerformanceCounters.cs
- HiddenFieldPageStatePersister.cs
- ListSortDescription.cs
- Trace.cs
- OdbcParameter.cs
- ExpressionServices.cs
- GeometryDrawing.cs
- ListView.cs
- OptimisticConcurrencyException.cs
- DateBoldEvent.cs
- PageStatePersister.cs
- SetterBase.cs
- TypeConverterHelper.cs
- Vector3DAnimationBase.cs
- XPathMultyIterator.cs
- WindowsAltTab.cs
- DbConvert.cs
- IntegerValidator.cs
- OrthographicCamera.cs
- FtpWebRequest.cs
- SemaphoreFullException.cs
- IIS7WorkerRequest.cs
- FontFamilyValueSerializer.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- BmpBitmapEncoder.cs
- TreeNodeBindingCollection.cs
- TdsParserSessionPool.cs
- BindingNavigator.cs
- KeySpline.cs
- TextControl.cs
- PropertySegmentSerializer.cs
- StrongNameIdentityPermission.cs
- HttpCapabilitiesBase.cs
- XmlSchemaSimpleTypeUnion.cs
- DataKeyCollection.cs
- XNameConverter.cs
- PropertyChange.cs
- XmlSchemaDatatype.cs
- DesignerHelpers.cs
- ConnectionInterfaceCollection.cs
- EntityDataSourceChangedEventArgs.cs
- StringUtil.cs
- BreakSafeBase.cs
- ProfileSettings.cs
- EndPoint.cs
- ButtonFieldBase.cs
- TraceHandlerErrorFormatter.cs
- SafeCoTaskMem.cs
- RegexGroupCollection.cs
- TextElement.cs
- storepermissionattribute.cs
- EnumMemberAttribute.cs
- DbExpressionVisitor.cs
- ErrorTableItemStyle.cs
- IntSecurity.cs
- OleDbDataReader.cs
- SQLCharsStorage.cs
- RectConverter.cs
- ExtensionDataObject.cs
- OdbcConnectionOpen.cs
- SerialErrors.cs
- GridViewPageEventArgs.cs
- DynamicValidatorEventArgs.cs
- TransformerInfoCollection.cs
- KeyedHashAlgorithm.cs
- KernelTypeValidation.cs
- Exception.cs
- ForceCopyBuildProvider.cs
- ScrollBar.cs
- DecoderNLS.cs
- ConfigurationStrings.cs
- ParsedAttributeCollection.cs
- CombinedGeometry.cs
- SystemIPGlobalProperties.cs
- UIAgentMonitorHandle.cs
- InputScopeNameConverter.cs
- Stream.cs
- InvokeWebServiceDesigner.cs
- CodeTypeMemberCollection.cs
- ManagedCodeMarkers.cs
- TextEncodedRawTextWriter.cs
- InvokeGenerator.cs
- XmlSchemaParticle.cs
- ClientCredentialsSecurityTokenManager.cs
- PrimitiveXmlSerializers.cs
- LogLogRecordHeader.cs
- SplitContainer.cs
- PersonalizationProviderHelper.cs
- SafeCertificateStore.cs
- TableSectionStyle.cs
- ProtectedConfigurationSection.cs
- NTAccount.cs
- ParserOptions.cs
- filewebresponse.cs
- BufferModesCollection.cs