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 IListto 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
- ObjectPersistData.cs
- UdpTransportBindingElement.cs
- Contracts.cs
- HtmlInputReset.cs
- CollectionEditor.cs
- WrapPanel.cs
- ClientConfigPaths.cs
- ItemsControlAutomationPeer.cs
- StorageMappingFragment.cs
- GcHandle.cs
- DataGridTableStyleMappingNameEditor.cs
- ImageField.cs
- MessageSecurityVersionConverter.cs
- _SslStream.cs
- GPRECTF.cs
- ThumbButtonInfoCollection.cs
- PageContentCollection.cs
- DmlSqlGenerator.cs
- LabelLiteral.cs
- RawStylusInput.cs
- ServiceElement.cs
- PeerReferralPolicy.cs
- BufferedResponseStream.cs
- DefaultEventAttribute.cs
- ObjectComplexPropertyMapping.cs
- RuntimeCompatibilityAttribute.cs
- HitTestWithPointDrawingContextWalker.cs
- DataStorage.cs
- GeneratedView.cs
- ModifierKeysValueSerializer.cs
- AtomMaterializer.cs
- NetPeerTcpBinding.cs
- ModelVisual3D.cs
- TriggerCollection.cs
- EmptyEnumerator.cs
- TypeContext.cs
- AuthorizationRuleCollection.cs
- EnumerableCollectionView.cs
- RuntimeEnvironment.cs
- _NestedMultipleAsyncResult.cs
- GridViewCommandEventArgs.cs
- StickyNoteContentControl.cs
- SqlProviderServices.cs
- HybridObjectCache.cs
- EntitySetDataBindingList.cs
- TreeViewDataItemAutomationPeer.cs
- _HelperAsyncResults.cs
- ContentValidator.cs
- ToolBarButtonDesigner.cs
- OutOfProcStateClientManager.cs
- CompositeFontInfo.cs
- Icon.cs
- ServicePoint.cs
- EntityDataReader.cs
- RIPEMD160Managed.cs
- RegexParser.cs
- AppSecurityManager.cs
- PointConverter.cs
- TypeBuilder.cs
- Vector3DConverter.cs
- DbConnectionOptions.cs
- LiteralControl.cs
- ObjectCloneHelper.cs
- ClientBuildManager.cs
- ResourceAssociationTypeEnd.cs
- ResourceAttributes.cs
- ListViewContainer.cs
- DataKeyCollection.cs
- objectquery_tresulttype.cs
- ScopelessEnumAttribute.cs
- WindowsContainer.cs
- input.cs
- AffineTransform3D.cs
- HandlerFactoryWrapper.cs
- VariantWrapper.cs
- TextSpan.cs
- Int64.cs
- ErrorFormatterPage.cs
- formatter.cs
- SqlTransaction.cs
- MergeLocalizationDirectives.cs
- ButtonBase.cs
- Socket.cs
- TransformedBitmap.cs
- PeerNameResolver.cs
- DataTablePropertyDescriptor.cs
- StringSorter.cs
- ViewSimplifier.cs
- LineServicesRun.cs
- OpCodes.cs
- SyndicationSerializer.cs
- CodeNamespace.cs
- StylusEditingBehavior.cs
- QueryContinueDragEvent.cs
- JapaneseCalendar.cs
- DependencyObject.cs
- DataDocumentXPathNavigator.cs
- ShapingWorkspace.cs
- ProgressBar.cs
- Variant.cs