次の方法で共有


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> 、アドインとそのホスト アプリケーションの間の分離境界を越えてマーシャリングできます。

適用対象