共用方式為


CollectionAdapters.ToIList 方法

定義

多載

ToIList<T>(IListContract<T>)

將指定的 IListContract<T> 集合轉換為 IList<T> 集合。

ToIList<TContract,TView>(IListContract<TContract>, Converter<TContract,TView>, Converter<TView,TContract>)

使用轉換子配接器,將指定的 IListContract<T> 集合轉換為 IList<T> 集合。

ToIList<T>(IListContract<T>)

將指定的 IListContract<T> 集合轉換為 IList<T> 集合。

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

類型參數

T

清單中所含物件的型別。 T 必須可序列化。

參數

collection
IListContract<T>

來自管線另一端的集合。

傳回

已轉換的集合。

範例

下列範例會實作主機端配接器管線區段,如逐步解說:在主機與載入宏之間傳遞集合。此範例會擷IListContract<T>取從載入宏傳遞的集合,並將其轉換成IList<T>集合,讓主應用程式可以使用這個集合來調整自定義ProcessBooks方法。

public virtual void ProcessBooks(IListContract<Library.IBookInfoContract> books)
{
    _view.ProcessBooks(CollectionAdapters.ToIList<Library.IBookInfoContract,
        LibraryContractsBase.BookInfo>(books,
        LibraryContractsAddInAdapters.BookInfoAddInAdapter.ContractToViewAdapter,
        LibraryContractsAddInAdapters.BookInfoAddInAdapter.ViewToContractAdapter));
}
Public Overridable Sub ProcessBooks(ByVal books As IListContract(Of Library.IBookInfoContract)) Implements Library.ILibraryManagerContract.ProcessBooks
    _view.ProcessBooks(CollectionAdapters.ToIList(Of Library.IBookInfoContract, _
    LibraryContractsBase.BookInfo)(books, _
    AddressOf LibraryContractsAddInAdapters.BookInfoAddInAdapter.ContractToViewAdapter, _
    AddressOf LibraryContractsAddInAdapters.BookInfoAddInAdapter.ViewToContractAdapter))
End Sub

備註

主應用程式或載入宏可以使用傳回的 IList<T> 集合。 集合 IList<T> 會有遠端 IListContract<T> 集合的存留期令牌。

只有當 的內容 IListContract<T> 是可串行化的型別,可以直接傳遞至載入宏和主機 (,而不是必須調整為檢視) 的類型時,才應該使用這個方法多載。

適用於

ToIList<TContract,TView>(IListContract<TContract>, Converter<TContract,TView>, Converter<TView,TContract>)

使用轉換子配接器,將指定的 IListContract<T> 集合轉換為 IList<T> 集合。

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

類型參數

TContract

定義用於跨隔離界限傳遞型別 TView 物件之合約的型別。

TView

定義清單中物件檢視的型別。

參數

collection
IListContract<TContract>

要傳遞至管線另一端的集合。

contractViewAdapter
Converter<TContract,TView>

轉換子,會將資料的型別從合約中所定義的型別改寫為檢視中所需的型別。

viewContractAdapter
Converter<TView,TContract>

轉換子,會將資料的型別從檢視中所定義的型別改寫為合約所需的型別。

傳回

IList<TView>

已轉換的集合。

備註

針對集合使用這個方法多載, IListContract<T> 這些集合包含必須先調整的類型,才能傳遞至載入宏或主機 (,而不是直接傳遞) 的簡單可串行化型別。 主應用程式或載入宏可以使用傳回的 IList<T> 集合。 其會有遠端 IListContract<T>的存留期令牌。

適用於