Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / AddIn / AddIn / System / Addin / Pipeline / CollectionAdapters.cs / 1305376 / CollectionAdapters.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: CollectionAdapters
**
** Purpose: Provides methods to convert from IList to IListContract
** and vice versa.
**
===========================================================*/
using System;
using System.Collections.Generic;
using System.AddIn.Contract;
using System.AddIn;
namespace System.AddIn.Pipeline
{
public static class CollectionAdapters
{
// Create a IListContract wrapper for an IList. This is typically done
// by an addin adapter that wants to pass a list of objects to the host,
// or vice versa.
public static IListContract ToIListContract(
IList collection,
Converter viewContractAdapter,
Converter contractViewAdapter)
{
if (collection == null)
return null;
return new ListContractAdapter(collection, viewContractAdapter, contractViewAdapter);
}
public static IListContract ToIListContract(IList collection)
{
if (collection == null)
return null;
Converter c = new Converter(IdentityConverter);
return ToIListContract(collection, c, c);
}
// Create an IList that wraps a IContractList. The returned IList will
// have a lifetimeToken for the remote IContractList. Its finalizer
// will revoke the lifetimeToken.
public static IList ToIList(
IListContract collection,
Converter contractViewAdapter,
Converter viewContractAdapter)
{
if (collection == null)
return null;
return new ContractListAdapter(collection, contractViewAdapter, viewContractAdapter);
}
public static IList ToIList(IListContract collection)
{
if (collection == null)
return null;
Converter c = new Converter(IdentityConverter);
return ToIList(collection, c, c);
}
private static T IdentityConverter(T item)
{
return item;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: CollectionAdapters
**
** Purpose: Provides methods to convert from IList to IListContract
** and vice versa.
**
===========================================================*/
using System;
using System.Collections.Generic;
using System.AddIn.Contract;
using System.AddIn;
namespace System.AddIn.Pipeline
{
public static class CollectionAdapters
{
// Create a IListContract wrapper for an IList. This is typically done
// by an addin adapter that wants to pass a list of objects to the host,
// or vice versa.
public static IListContract ToIListContract(
IList collection,
Converter viewContractAdapter,
Converter contractViewAdapter)
{
if (collection == null)
return null;
return new ListContractAdapter(collection, viewContractAdapter, contractViewAdapter);
}
public static IListContract ToIListContract(IList collection)
{
if (collection == null)
return null;
Converter c = new Converter(IdentityConverter);
return ToIListContract(collection, c, c);
}
// Create an IList that wraps a IContractList. The returned IList will
// have a lifetimeToken for the remote IContractList. Its finalizer
// will revoke the lifetimeToken.
public static IList ToIList(
IListContract collection,
Converter contractViewAdapter,
Converter viewContractAdapter)
{
if (collection == null)
return null;
return new ContractListAdapter(collection, contractViewAdapter, viewContractAdapter);
}
public static IList ToIList(IListContract collection)
{
if (collection == null)
return null;
Converter c = new Converter(IdentityConverter);
return ToIList(collection, c, c);
}
private static T IdentityConverter(T item)
{
return item;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HwndHost.cs
- TimelineClockCollection.cs
- TypeElementCollection.cs
- ToolStripContainer.cs
- InternalDispatchObject.cs
- UserNameSecurityTokenProvider.cs
- NetworkStream.cs
- SQLRoleProvider.cs
- ClickablePoint.cs
- EnvironmentPermission.cs
- SoapReflector.cs
- SqlUDTStorage.cs
- SocketSettings.cs
- InvalidAsynchronousStateException.cs
- CfgParser.cs
- XmlNodeList.cs
- Annotation.cs
- EntitySetRetriever.cs
- OverlappedAsyncResult.cs
- TableRowGroup.cs
- StatusStrip.cs
- RefType.cs
- IPEndPoint.cs
- XNodeValidator.cs
- ContentHostHelper.cs
- MemoryMappedViewStream.cs
- DotExpr.cs
- MessageHeader.cs
- LinkLabel.cs
- AttachedProperty.cs
- WebPartConnectVerb.cs
- EventLogger.cs
- TagPrefixAttribute.cs
- PeerChannelFactory.cs
- BoolExpr.cs
- UnknownWrapper.cs
- VariantWrapper.cs
- ChangeProcessor.cs
- ISAPIRuntime.cs
- LinqDataSourceHelper.cs
- ImmComposition.cs
- SchemaHelper.cs
- ButtonAutomationPeer.cs
- LocalBuilder.cs
- Expander.cs
- VBIdentifierName.cs
- DataViewManagerListItemTypeDescriptor.cs
- TraceUtility.cs
- ParameterInfo.cs
- EdmToObjectNamespaceMap.cs
- MappingSource.cs
- StylusPointPropertyId.cs
- XmlDocumentType.cs
- WmiEventSink.cs
- COM2ComponentEditor.cs
- MouseEventArgs.cs
- ToolStripContextMenu.cs
- SoapCommonClasses.cs
- DataControlHelper.cs
- EntitySetDataBindingList.cs
- XmlNamedNodeMap.cs
- CodeDomSerializerBase.cs
- ValidatingPropertiesEventArgs.cs
- NetworkAddressChange.cs
- baseaxisquery.cs
- ReflectPropertyDescriptor.cs
- Scene3D.cs
- BasicHttpBindingElement.cs
- BitVector32.cs
- DataPointer.cs
- DataFieldConverter.cs
- FixedMaxHeap.cs
- ReliableChannelListener.cs
- CollectionViewGroup.cs
- WebHttpElement.cs
- WmlCommandAdapter.cs
- Repeater.cs
- SafeNativeMethods.cs
- WebPart.cs
- SmiTypedGetterSetter.cs
- ScrollContentPresenter.cs
- dataprotectionpermission.cs
- _ContextAwareResult.cs
- SendMessageContent.cs
- PersonalizationEntry.cs
- SqlParameterizer.cs
- ContravarianceAdapter.cs
- StretchValidation.cs
- DataGridColumnCollectionEditor.cs
- StreamUpdate.cs
- InternalBufferOverflowException.cs
- SecurityDocument.cs
- _BufferOffsetSize.cs
- RunInstallerAttribute.cs
- SortedList.cs
- CoTaskMemSafeHandle.cs
- LinqMaximalSubtreeNominator.cs
- TPLETWProvider.cs
- DataAdapter.cs
- ActivityExecutionFilter.cs