CollectionAdapters.ToIListContract 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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>集合可以跨載入宏與其主應用程式之間的隔離界限封送處理。