CollectionAdapters.ToIListContract 方法

定义

重载

ToIListContract<T>(IList<T>)

将指定的 IList<T> 集合转换为 IListContract<T> 集合。

ToIListContract<TView,TContract>(IList<TView>, Converter<TView,TContract>, Converter<TContract,TView>)

通过使用转换器适配器将指定的 IList<T> 集合转换为 IListContract<T> 集合。

ToIListContract<T>(IList<T>)

将指定的 IList<T> 集合转换为 IListContract<T> 集合。

public:
generic <typename T>
 static System::AddIn::Contract::IListContract<T> ^ ToIListContract(System::Collections::Generic::IList<T> ^ collection);
public static System.AddIn.Contract.IListContract<T> ToIListContract<T> (System.Collections.Generic.IList<T> collection);
static member ToIListContract : System.Collections.Generic.IList<'T> -> System.AddIn.Contract.IListContract<'T>
Public Shared Function ToIListContract(Of T) (collection As IList(Of T)) As IListContract(Of T)

类型参数

T

列表中所含对象的类型。 T 必须可序列化。

参数

collection
IList<T>

要转换的集合。

返回

已转换的集合。

示例

以下示例实现定义外接程序端适配器管道段的 类。 它采用从外接程序视图段传递的IList<T>集合并将其转换为IListContract<T>可跨隔离边界封送到主机的集合,从而调整自定义ProcessBooks方法。

public override void ProcessBooks(IList<LibraryContractsHAV.BookInfo> books) {
    _contract.ProcessBooks(CollectionAdapters.ToIListContract<LibraryContractsHAV.BookInfo,
        Library.IBookInfoContract>(books,
        LibraryContractsHostAdapters.BookInfoHostAdapter.ViewToContractAdapter,
        LibraryContractsHostAdapters.BookInfoHostAdapter.ContractToViewAdapter));
}
Public Overrides Sub ProcessBooks(ByVal books As IList(Of LibraryContractsHAV.BookInfo))
    _contract.ProcessBooks(CollectionAdapters.ToIListContract(Of LibraryContractsHAV.BookInfo, _
    Library.IBookInfoContract)(books, _
    AddressOf LibraryContractsHostAdapters.BookInfoHostAdapter.ViewToContractAdapter, _
    AddressOf LibraryContractsHostAdapters.BookInfoHostAdapter.ContractToViewAdapter))
End Sub

注解

IListContract<T>集合可以跨加载项及其主机应用程序之间的隔离边界进行封送。

仅当集合的内容 IList<T> 是可直接传递给协定 (的可序列化类型,而不是必须改编为协定) 的类型时,才应使用此方法重载。

适用于

ToIListContract<TView,TContract>(IList<TView>, Converter<TView,TContract>, Converter<TContract,TView>)

通过使用转换器适配器将指定的 IList<T> 集合转换为 IListContract<T> 集合。

public:
generic <typename TView, typename TContract>
 static System::AddIn::Contract::IListContract<TContract> ^ ToIListContract(System::Collections::Generic::IList<TView> ^ collection, Converter<TView, TContract> ^ viewContractAdapter, Converter<TContract, TView> ^ contractViewAdapter);
public static System.AddIn.Contract.IListContract<TContract> ToIListContract<TView,TContract> (System.Collections.Generic.IList<TView> collection, Converter<TView,TContract> viewContractAdapter, Converter<TContract,TView> contractViewAdapter);
static member ToIListContract : System.Collections.Generic.IList<'View> * Converter<'View, 'Contract> * Converter<'Contract, 'View> -> System.AddIn.Contract.IListContract<'Contract>
Public Shared Function ToIListContract(Of TView, TContract) (collection As IList(Of TView), viewContractAdapter As Converter(Of TView, TContract), contractViewAdapter As Converter(Of TContract, TView)) As IListContract(Of TContract)

类型参数

TView

定义列表中各个对象的视图的类型。

TContract

定义用于跨隔离边界传递 TView 类型对象的协定的类型。

参数

collection
IList<TView>

要转换的集合。

viewContractAdapter
Converter<TView,TContract>

一个将数据从视图中定义的类型改编为协定预期的类型的转换器。

contractViewAdapter
Converter<TContract,TView>

一个将数据从协定中定义的类型改编为视图中的预期类型的转换器。

返回

IListContract<TContract>

已转换的集合。

注解

对于 IList<T> 包含的类型的集合使用此方法重载,这些类型必须先改编为协定,然后才能将其传递给协定 (而不是直接) 传递的简单可序列化类型。 IListContract<T>集合可以跨外接程序与其主机应用程序之间的隔离边界进行封送。

适用于