共用方式為


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>集合可以跨載入宏與其主應用程式之間的隔離界限封送處理。

適用於