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
- PointIndependentAnimationStorage.cs
- OpCopier.cs
- CodeCommentStatement.cs
- ObjectStateEntryDbDataRecord.cs
- PersistenceProviderFactory.cs
- Stackframe.cs
- LinqDataSourceInsertEventArgs.cs
- ContentWrapperAttribute.cs
- Nullable.cs
- WmlTextViewAdapter.cs
- Model3DGroup.cs
- TransactionTraceIdentifier.cs
- Rect3DConverter.cs
- ThreadInterruptedException.cs
- InkCanvasInnerCanvas.cs
- ZipArchive.cs
- CompiledRegexRunnerFactory.cs
- InternalTypeHelper.cs
- BaseInfoTable.cs
- XmlEventCache.cs
- OdbcDataReader.cs
- HtmlInputFile.cs
- Rfc2898DeriveBytes.cs
- PersistenceIOParticipant.cs
- SHA256.cs
- DictionaryBase.cs
- Timer.cs
- TriggerAction.cs
- DataTableMappingCollection.cs
- CharConverter.cs
- PreservationFileWriter.cs
- FontResourceCache.cs
- OutArgument.cs
- OleDbRowUpdatingEvent.cs
- StylusPointCollection.cs
- SettingsSection.cs
- TextModifierScope.cs
- DataPagerField.cs
- StoreAnnotationsMap.cs
- AppDomainUnloadedException.cs
- InputLanguageSource.cs
- CultureTableRecord.cs
- COM2FontConverter.cs
- DifferencingCollection.cs
- EncodingTable.cs
- XmlSiteMapProvider.cs
- MenuItemCollection.cs
- _SSPISessionCache.cs
- WebPartMenu.cs
- PenContexts.cs
- PointAnimationUsingKeyFrames.cs
- EntityViewGenerator.cs
- KeyValueInternalCollection.cs
- ApplicationManager.cs
- TransformDescriptor.cs
- CodeAttributeDeclarationCollection.cs
- OdbcStatementHandle.cs
- GridViewCellAutomationPeer.cs
- StringExpressionSet.cs
- WebServiceTypeData.cs
- RegionInfo.cs
- RightsManagementPermission.cs
- BindingNavigator.cs
- DrawingCollection.cs
- AxHost.cs
- PeerEndPoint.cs
- ActiveXHelper.cs
- DbConnectionPoolGroupProviderInfo.cs
- RegexCapture.cs
- ExclusiveCanonicalizationTransform.cs
- TextTreeInsertUndoUnit.cs
- PathSegment.cs
- XsltQilFactory.cs
- MetadataPropertyAttribute.cs
- WindowsRichEditRange.cs
- CompilerWrapper.cs
- ApplicationFileParser.cs
- ContainerFilterService.cs
- SourceItem.cs
- Win32NamedPipes.cs
- MembershipValidatePasswordEventArgs.cs
- recordstate.cs
- XmlSchemaSimpleContent.cs
- PersonalizationAdministration.cs
- CompensationDesigner.cs
- DrawingImage.cs
- FontCollection.cs
- NameValueFileSectionHandler.cs
- UnsafeNativeMethods.cs
- ResourceBinder.cs
- GACMembershipCondition.cs
- PreProcessInputEventArgs.cs
- DesignerCategoryAttribute.cs
- IsolatedStorageFilePermission.cs
- X509Chain.cs
- CharStorage.cs
- SoapAttributes.cs
- SelectionRange.cs
- LinkAreaEditor.cs
- SQLInt64Storage.cs