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
- IsolatedStorageFileStream.cs
- PingReply.cs
- ComplexLine.cs
- Operand.cs
- StartUpEventArgs.cs
- EncoderParameter.cs
- EdmMember.cs
- ListItemCollection.cs
- Run.cs
- WrappedReader.cs
- AsyncResult.cs
- List.cs
- XmlSchemaSimpleTypeList.cs
- MustUnderstandSoapException.cs
- IpcClientChannel.cs
- XamlGridLengthSerializer.cs
- DisplayInformation.cs
- CalendarAutoFormatDialog.cs
- Geometry.cs
- ParameterDataSourceExpression.cs
- HtmlTableRowCollection.cs
- BlockCollection.cs
- Assembly.cs
- AuthenticationException.cs
- OracleDataAdapter.cs
- Validator.cs
- ResourceDefaultValueAttribute.cs
- CompatibleIComparer.cs
- _ContextAwareResult.cs
- BindingContext.cs
- CapiNative.cs
- CertificateElement.cs
- ColumnTypeConverter.cs
- StatusBarDrawItemEvent.cs
- NameValueConfigurationElement.cs
- FontWeights.cs
- WebPartTransformerCollection.cs
- DesignerProperties.cs
- HttpRequest.cs
- StructuralComparisons.cs
- StorageComplexPropertyMapping.cs
- XPathQueryGenerator.cs
- FontUnitConverter.cs
- Socket.cs
- DefaultWorkflowSchedulerService.cs
- hresults.cs
- BindingWorker.cs
- Maps.cs
- DesignerValidatorAdapter.cs
- NavigateEvent.cs
- BrushValueSerializer.cs
- WebPartConnectionsCancelEventArgs.cs
- SafeLibraryHandle.cs
- XmlStreamedByteStreamReader.cs
- FixedFlowMap.cs
- StylusDevice.cs
- ExpressionBuilder.cs
- sitestring.cs
- ControlTemplate.cs
- LogicalExpressionTypeConverter.cs
- SafeViewOfFileHandle.cs
- IsolatedStorageFileStream.cs
- objectresult_tresulttype.cs
- Icon.cs
- DataConnectionHelper.cs
- TextEffectResolver.cs
- ToolStripArrowRenderEventArgs.cs
- BufferedGraphicsManager.cs
- TransformerInfo.cs
- ImageListStreamer.cs
- Native.cs
- MessageBox.cs
- CollectionDataContract.cs
- DtcInterfaces.cs
- CompensateDesigner.cs
- ObjectListDesigner.cs
- Window.cs
- X509ChainElement.cs
- DataChangedEventManager.cs
- SBCSCodePageEncoding.cs
- SessionStateModule.cs
- SmtpFailedRecipientsException.cs
- TCPListener.cs
- OrderingExpression.cs
- DispatcherObject.cs
- SqlRemoveConstantOrderBy.cs
- MemoryFailPoint.cs
- Exception.cs
- __FastResourceComparer.cs
- SqlNotificationEventArgs.cs
- LinqDataSourceSelectEventArgs.cs
- BoundingRectTracker.cs
- ColorDialog.cs
- SHA384.cs
- CategoriesDocument.cs
- OracleCommandBuilder.cs
- CodeAttachEventStatement.cs
- ListViewGroup.cs
- LogReservationCollection.cs
- VariableQuery.cs