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
- TagPrefixCollection.cs
- PhysicalFontFamily.cs
- ToolBarButtonClickEvent.cs
- MouseButton.cs
- TreeViewCancelEvent.cs
- HttpFileCollectionWrapper.cs
- UInt64Converter.cs
- ReliabilityContractAttribute.cs
- ToolStripDropDownMenu.cs
- QuaternionKeyFrameCollection.cs
- EmbeddedMailObjectsCollection.cs
- ClientBuildManagerCallback.cs
- FormattedTextSymbols.cs
- SerializerWriterEventHandlers.cs
- FormsAuthenticationUser.cs
- WebPartZone.cs
- VisualStyleRenderer.cs
- OleDbSchemaGuid.cs
- HttpResponseInternalBase.cs
- BorderGapMaskConverter.cs
- CodeAttributeDeclarationCollection.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- VBIdentifierDesigner.xaml.cs
- QilGenerator.cs
- TokenBasedSetEnumerator.cs
- ActionItem.cs
- InstanceData.cs
- TemplateAction.cs
- CompressedStack.cs
- Token.cs
- TreePrinter.cs
- FamilyTypefaceCollection.cs
- InputBinding.cs
- EffectiveValueEntry.cs
- Viewport3DAutomationPeer.cs
- NoneExcludedImageIndexConverter.cs
- sqlstateclientmanager.cs
- Pkcs7Signer.cs
- SafeMarshalContext.cs
- QueryUtil.cs
- AsymmetricSignatureFormatter.cs
- Point4D.cs
- Site.cs
- ColumnPropertiesGroup.cs
- GridPattern.cs
- DomNameTable.cs
- Transform.cs
- TextBox.cs
- OlePropertyStructs.cs
- PageAsyncTaskManager.cs
- NumericExpr.cs
- SqlExpressionNullability.cs
- PartialArray.cs
- Int16KeyFrameCollection.cs
- KnownTypesHelper.cs
- Win32KeyboardDevice.cs
- XamlParser.cs
- MailBnfHelper.cs
- BooleanKeyFrameCollection.cs
- Stackframe.cs
- SctClaimSerializer.cs
- XmlSchemaRedefine.cs
- CngProvider.cs
- DataErrorValidationRule.cs
- ConnectionString.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- TypeForwardedToAttribute.cs
- ConvertEvent.cs
- ToolboxItemCollection.cs
- BCLDebug.cs
- EnumerableCollectionView.cs
- DiagnosticStrings.cs
- ISAPIApplicationHost.cs
- MimeAnyImporter.cs
- ListViewTableRow.cs
- RemoteWebConfigurationHost.cs
- CharacterBuffer.cs
- QilLiteral.cs
- SectionInput.cs
- ActivationArguments.cs
- HtmlTableCell.cs
- TdsParserStaticMethods.cs
- FrameworkElementFactory.cs
- thaishape.cs
- VerificationException.cs
- GeneralTransform3D.cs
- wmiutil.cs
- TableStyle.cs
- GatewayIPAddressInformationCollection.cs
- TextRangeEditTables.cs
- ProfileManager.cs
- InProcStateClientManager.cs
- TextBoxLine.cs
- Span.cs
- StyleCollection.cs
- TdsParserHelperClasses.cs
- WebPartAuthorizationEventArgs.cs
- GraphicsContext.cs
- ProvidePropertyAttribute.cs
- ResourceManagerWrapper.cs