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
- DataServiceException.cs
- XmlRootAttribute.cs
- HostElement.cs
- KeyManager.cs
- PropertyRef.cs
- MarginCollapsingState.cs
- NavigateEvent.cs
- IntranetCredentialPolicy.cs
- KeyValuePair.cs
- BooleanSwitch.cs
- SystemUdpStatistics.cs
- StatusBarPanel.cs
- CellConstantDomain.cs
- FormClosedEvent.cs
- dataobject.cs
- FilterException.cs
- CssClassPropertyAttribute.cs
- ReachIDocumentPaginatorSerializer.cs
- AnnotationStore.cs
- SchemaTableOptionalColumn.cs
- ApplicationGesture.cs
- ErrorEventArgs.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- InkCanvasSelection.cs
- DrawToolTipEventArgs.cs
- DataGridState.cs
- ExpressionParser.cs
- SR.Designer.cs
- CollectionBuilder.cs
- Config.cs
- InputLanguageSource.cs
- LabelEditEvent.cs
- ColumnHeaderConverter.cs
- ConstraintStruct.cs
- PropertySet.cs
- RemotingSurrogateSelector.cs
- LogLogRecord.cs
- PolygonHotSpot.cs
- SerializationTrace.cs
- XmlText.cs
- VerificationException.cs
- DesignerObject.cs
- VersionedStream.cs
- TextContainer.cs
- CompModSwitches.cs
- MasterPageBuildProvider.cs
- Int16.cs
- ConfigXmlCDataSection.cs
- UniqueEventHelper.cs
- ResourcePermissionBase.cs
- TabControlAutomationPeer.cs
- Vector3DKeyFrameCollection.cs
- TextMarkerSource.cs
- MergeFailedEvent.cs
- StatusStrip.cs
- UidManager.cs
- UnsafeNativeMethods.cs
- SimpleHandlerFactory.cs
- SafeNativeMethodsOther.cs
- X509SubjectKeyIdentifierClause.cs
- SqlStatistics.cs
- EdmSchemaAttribute.cs
- HtmlHistory.cs
- UserMapPath.cs
- UpDownBase.cs
- Soap12ProtocolImporter.cs
- FrameAutomationPeer.cs
- FontFamily.cs
- TextBlock.cs
- DesignerLinkAdapter.cs
- CollectionViewProxy.cs
- ToolboxDataAttribute.cs
- SelectedDatesCollection.cs
- SchemaManager.cs
- OleDbEnumerator.cs
- TableRow.cs
- InfoCardKeyedHashAlgorithm.cs
- DynamicDiscoSearcher.cs
- RequestDescription.cs
- StringFormat.cs
- TwoPhaseCommitProxy.cs
- ImageMap.cs
- DataGridViewTopRowAccessibleObject.cs
- ClaimComparer.cs
- ProfileModule.cs
- PersonalizationAdministration.cs
- Options.cs
- SerialErrors.cs
- TreeViewCancelEvent.cs
- DataSourceListEditor.cs
- BitmapEffectState.cs
- NoPersistHandle.cs
- odbcmetadatacollectionnames.cs
- Privilege.cs
- MembershipSection.cs
- HtmlProps.cs
- CompilationLock.cs
- TemplateControlParser.cs
- ScriptingAuthenticationServiceSection.cs
- EmptyCollection.cs