CollectionAdapters.ToIList Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
ToIList<T>(IListContract<T>) |
Converts the specified IListContract<T> collection to an IList<T> collection. |
ToIList<TContract,TView>(IListContract<TContract>, Converter<TContract,TView>, Converter<TView,TContract>) |
Converts a specified IListContract<T> collection to an IList<T> collection by using converter adapters. |
ToIList<T>(IListContract<T>)
Converts the specified IListContract<T> collection to an IList<T> collection.
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)
Type Parameters
- T
The type of objects that are contained in the list. T
must be serializable.
Parameters
- collection
- IListContract<T>
The collection from the other side of the pipeline.
Returns
The converted collection.
Examples
The following example implements a host-side adapter pipeline segment as described Walkthrough: Passing Collections Between Hosts and Add-Ins. The example adapts the custom ProcessBooks
method by taking the IListContract<T> collection passed from the add-in and converting it to an IList<T> collection, which the host application can then use.
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
Remarks
The host application or add-in can use the returned IList<T> collection. The IList<T> collection will have a lifetime token for the remote IListContract<T> collection.
You should use this method overload only when the contents of the IListContract<T> are serializable types that can be passed directly to the add-in and host (rather than types that must be adapted into views).
Applies to
ToIList<TContract,TView>(IListContract<TContract>, Converter<TContract,TView>, Converter<TView,TContract>)
Converts a specified IListContract<T> collection to an IList<T> collection by using converter adapters.
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)
Type Parameters
- TContract
The type that defines the contract for passing objects of type TView
across the isolation boundary.
- TView
The type that defines the view of the objects in the list.
Parameters
- collection
- IListContract<TContract>
The collection to pass to the other side of the pipeline.
- contractViewAdapter
- Converter<TContract,TView>
A converter that adapts the data from the type defined in the contract to the type expected in the view.
- viewContractAdapter
- Converter<TView,TContract>
A converter that adapts the data from the type defined in the view to the type expected by the contract.
Returns
The converted collection.
Remarks
Use this method overload for IListContract<T> collections that contain types that must be adapted before they can be passed to the add-in or host (rather than simple serializable types that can be passed directly). The host application or add-in can use the returned IList<T> collection. It will have a lifetime token for the remote IListContract<T>.