CollectionAdapters.ToIListContract 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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>
一个将数据从协定中定义的类型改编为视图中的预期类型的转换器。
返回
已转换的集合。
注解
对于 IList<T> 包含的类型的集合使用此方法重载,这些类型必须先改编为协定,然后才能将其传递给协定 (而不是直接) 传递的简单可序列化类型。 IListContract<T>集合可以跨外接程序与其主机应用程序之间的隔离边界进行封送。