Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / AddIn / AddIn / System / Addin / Pipeline / ListContractAdapter.cs / 1305376 / ListContractAdapter.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ListContractAdapter ** ** ===========================================================*/ using System; using System.Collections.Generic; using System.AddIn.Contract; using System.Diagnostics.Contracts; namespace System.AddIn.Pipeline { internal class ListContractAdapter: ContractBase, IListContract { private IList m_list; private Converter m_wrapper; private Converter m_unwrapper; public ListContractAdapter(IList source, Converter wrapper, Converter unwrapper) { if (source == null) throw new ArgumentNullException("source"); if (wrapper == null) throw new ArgumentNullException("wrapper"); if (unwrapper == null) throw new ArgumentNullException("unwrapper"); if (!typeof(U).IsSerializable && !typeof(IContract).IsAssignableFrom(typeof(U))) throw new ArgumentException(Res.TypeShouldBeSerializableOrIContract, typeof(U).Name); System.Diagnostics.Contracts.Contract.EndContractBlock(); m_list = source; m_wrapper = wrapper; m_unwrapper = unwrapper; } public void Add(U item) { m_list.Add(m_unwrapper(item)); } public void Clear() { m_list.Clear(); } public bool Contains(U item) { return m_list.Contains(m_unwrapper(item)); } public int IndexOf(U item) { return m_list.IndexOf(m_unwrapper(item)); } public void Insert(int index, U item) { m_list.Insert(index, m_unwrapper(item)); } public bool Remove(U item) { return m_list.Remove(m_unwrapper(item)); } public void RemoveAt(int index) { m_list.RemoveAt(index); } public U GetItem(int index) { return m_wrapper(m_list[index]); } public void SetItem(int index, U item) { m_list[index] = m_unwrapper(item); } public int GetCount() { return m_list.Count; } public bool GetIsReadOnly() { return m_list.IsReadOnly; } public IEnumeratorContract GetEnumeratorContract() { return new ListEnumeratorAdapter (m_list.GetEnumerator(), m_wrapper); } } internal class ListEnumeratorAdapter : ContractBase, IEnumeratorContract { IEnumerator m_enumerator; Converter m_wrapper; public ListEnumeratorAdapter(IEnumerator enumerator, Converter wrapper) { if (enumerator == null) throw new ArgumentNullException("enumerator"); if (wrapper == null) throw new ArgumentNullException("wrapper"); System.Diagnostics.Contracts.Contract.EndContractBlock(); m_enumerator = enumerator; m_wrapper = wrapper; } public U GetCurrent() { return m_wrapper(m_enumerator.Current); } public bool MoveNext() { return m_enumerator.MoveNext(); } public void Reset() { m_enumerator.Reset(); } public void Dispose() { m_enumerator.Dispose(); } } } // 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
- XPathDocumentBuilder.cs
- InputEventArgs.cs
- localization.cs
- StructuralType.cs
- ConfigurationCollectionAttribute.cs
- InitializerFacet.cs
- VariableQuery.cs
- ByteStreamMessageEncoder.cs
- SchemaConstraints.cs
- BitmapEffectState.cs
- OleDbError.cs
- OrderByLifter.cs
- TemplatedWizardStep.cs
- ControlIdConverter.cs
- RandomNumberGenerator.cs
- ModelTreeEnumerator.cs
- PackagePartCollection.cs
- WebServiceClientProxyGenerator.cs
- ContextProperty.cs
- ObjectQueryProvider.cs
- ParallelActivityDesigner.cs
- XsdDateTime.cs
- Triplet.cs
- RoleManagerModule.cs
- SetStoryboardSpeedRatio.cs
- PropertyGridCommands.cs
- SqlCacheDependencyDatabase.cs
- RtfFormatStack.cs
- FormatConvertedBitmap.cs
- XsltSettings.cs
- DataGridColumnCollection.cs
- MenuBindingsEditorForm.cs
- DialogResultConverter.cs
- EdmPropertyAttribute.cs
- ConfigurationStrings.cs
- AtomEntry.cs
- ToolStripProgressBar.cs
- NotImplementedException.cs
- AccessibilityApplicationManager.cs
- ClientBuildManager.cs
- BinaryWriter.cs
- InitializationEventAttribute.cs
- DefaultBindingPropertyAttribute.cs
- Win32.cs
- AutoResetEvent.cs
- CngProvider.cs
- BooleanExpr.cs
- ColorConvertedBitmap.cs
- CultureInfoConverter.cs
- GridView.cs
- ApplicationSecurityManager.cs
- ActivityXRefPropertyEditor.cs
- XmlBaseWriter.cs
- SizeAnimation.cs
- HttpProfileGroupBase.cs
- DataSetFieldSchema.cs
- ACL.cs
- FormViewRow.cs
- DefaultAsyncDataDispatcher.cs
- OleDbCommandBuilder.cs
- ListCommandEventArgs.cs
- ParseNumbers.cs
- TableColumn.cs
- XmlSerializationWriter.cs
- ConfigsHelper.cs
- NetCodeGroup.cs
- FormDocumentDesigner.cs
- OutputWindow.cs
- XmlCountingReader.cs
- ExceptionCollection.cs
- CompensatableSequenceActivity.cs
- MobileRedirect.cs
- QilUnary.cs
- QueryModel.cs
- UnsafeCollabNativeMethods.cs
- ColorContext.cs
- SubpageParaClient.cs
- SqlTopReducer.cs
- CompositeActivityMarkupSerializer.cs
- FactoryGenerator.cs
- FlowDocumentFormatter.cs
- coordinatorfactory.cs
- RuntimeTransactionHandle.cs
- ActivityExecutionContext.cs
- TreeNodeEventArgs.cs
- CheckBoxList.cs
- TimeSpanStorage.cs
- ClientScriptManager.cs
- InvalidWMPVersionException.cs
- ClientSettingsStore.cs
- cookiecontainer.cs
- MissingMemberException.cs
- SqlComparer.cs
- ADRoleFactory.cs
- IdleTimeoutMonitor.cs
- StaticSiteMapProvider.cs
- CanExecuteRoutedEventArgs.cs
- XmlDataSource.cs
- SmiEventSink_DeferedProcessing.cs
- CheckBox.cs