Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Serializer / SynchronizationHandlesCodeDomSerializer.cs / 1305376 / SynchronizationHandlesCodeDomSerializer.cs
namespace System.Workflow.ComponentModel.Serialization { using System; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Workflow.ComponentModel.Compiler; using System.Collections; using System.Collections.Specialized; using System.Collections.Generic; // This serializer will serialize any ICollectionobject into code statements that constructs the collection. // The default serializer serializes the collection as resource because ICollection is serializable. // We originally add this serializer to deal with the SynchronizationHandles property on SynchronizationScopeActivity. // It was a problem because this serializer will be invoked for any property of ICollection type. Now I've // made this generic enough to be used by any such properties. internal sealed class SynchronizationHandlesCodeDomSerializer : CodeDomSerializer { public override object Serialize(IDesignerSerializationManager manager, object obj) { if (manager == null) throw new ArgumentNullException("manager"); if (obj == null) throw new ArgumentNullException("obj"); CodeExpression retVal = null; CodeStatementCollection statements = manager.Context[typeof(CodeStatementCollection)] as CodeStatementCollection; System.Diagnostics.Debug.Assert(statements != null); if (statements != null) { Activity activity = (Activity)manager.Context[typeof(Activity)]; CodeExpression objectExpression = SerializeToExpression(manager, activity); ICollection handles = obj as ICollection ; if (handles == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(StringCollection).FullName), "obj"); string variableName = GetUniqueName(manager, new StringCollection()); statements.Add(new CodeVariableDeclarationStatement(obj.GetType(), variableName, new CodeObjectCreateExpression(obj.GetType()))); foreach (string handle in handles) statements.Add(new CodeMethodInvokeExpression(new CodeMethodReferenceExpression(new CodeVariableReferenceExpression(variableName), "Add"), new CodeExpression[] { new CodePrimitiveExpression(handle) })); retVal = new CodeVariableReferenceExpression(variableName); } return retVal; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Workflow.ComponentModel.Serialization { using System; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Workflow.ComponentModel.Compiler; using System.Collections; using System.Collections.Specialized; using System.Collections.Generic; // This serializer will serialize any ICollection object into code statements that constructs the collection. // The default serializer serializes the collection as resource because ICollection is serializable. // We originally add this serializer to deal with the SynchronizationHandles property on SynchronizationScopeActivity. // It was a problem because this serializer will be invoked for any property of ICollection type. Now I've // made this generic enough to be used by any such properties. internal sealed class SynchronizationHandlesCodeDomSerializer : CodeDomSerializer { public override object Serialize(IDesignerSerializationManager manager, object obj) { if (manager == null) throw new ArgumentNullException("manager"); if (obj == null) throw new ArgumentNullException("obj"); CodeExpression retVal = null; CodeStatementCollection statements = manager.Context[typeof(CodeStatementCollection)] as CodeStatementCollection; System.Diagnostics.Debug.Assert(statements != null); if (statements != null) { Activity activity = (Activity)manager.Context[typeof(Activity)]; CodeExpression objectExpression = SerializeToExpression(manager, activity); ICollection handles = obj as ICollection ; if (handles == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(StringCollection).FullName), "obj"); string variableName = GetUniqueName(manager, new StringCollection()); statements.Add(new CodeVariableDeclarationStatement(obj.GetType(), variableName, new CodeObjectCreateExpression(obj.GetType()))); foreach (string handle in handles) statements.Add(new CodeMethodInvokeExpression(new CodeMethodReferenceExpression(new CodeVariableReferenceExpression(variableName), "Add"), new CodeExpression[] { new CodePrimitiveExpression(handle) })); retVal = new CodeVariableReferenceExpression(variableName); } return retVal; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PrintDocument.cs
- UnmanagedMemoryStreamWrapper.cs
- StrokeIntersection.cs
- Calendar.cs
- DbReferenceCollection.cs
- SQLBinaryStorage.cs
- GroupBoxAutomationPeer.cs
- SafeRightsManagementPubHandle.cs
- FixedSchema.cs
- AdRotator.cs
- EntityContainerEmitter.cs
- Pkcs7Recipient.cs
- ButtonRenderer.cs
- HitTestResult.cs
- TextSearch.cs
- validationstate.cs
- AppLevelCompilationSectionCache.cs
- XPathNodeIterator.cs
- ServiceKnownTypeAttribute.cs
- EndpointBehaviorElementCollection.cs
- RegexRunner.cs
- TranslateTransform3D.cs
- ServicesUtilities.cs
- TemplatedAdorner.cs
- HorizontalAlignConverter.cs
- ColumnResizeUndoUnit.cs
- UInt64Storage.cs
- ConfigXmlText.cs
- linebase.cs
- HttpRequestCacheValidator.cs
- HandlerFactoryWrapper.cs
- MenuItemCollectionEditor.cs
- ToolStripSystemRenderer.cs
- WizardPanel.cs
- BoolExpression.cs
- Simplifier.cs
- CryptoStream.cs
- RelationshipType.cs
- AttributeData.cs
- ApplicationManager.cs
- NumberFormatInfo.cs
- LeafCellTreeNode.cs
- CompressionTracing.cs
- InvokeMethodActivityDesigner.cs
- ObjectListItemCollection.cs
- ResetableIterator.cs
- JsonFormatReaderGenerator.cs
- MatrixAnimationBase.cs
- HitTestDrawingContextWalker.cs
- BindStream.cs
- BinaryMethodMessage.cs
- TextStore.cs
- KeyedCollection.cs
- CustomErrorsSectionWrapper.cs
- XmlILAnnotation.cs
- UInt16Converter.cs
- NamedPipeHostedTransportConfiguration.cs
- GridViewAutoFormat.cs
- TransportationConfigurationTypeInstallComponent.cs
- ConfigurationException.cs
- ToolStripMenuItem.cs
- ContractTypeNameElement.cs
- DrawToolTipEventArgs.cs
- RuleRef.cs
- DataGridViewCellParsingEventArgs.cs
- IteratorFilter.cs
- EditorPartChrome.cs
- Automation.cs
- CompilerParameters.cs
- SqlCacheDependencyDatabaseCollection.cs
- _NestedMultipleAsyncResult.cs
- CAGDesigner.cs
- ProjectionCamera.cs
- ForEachDesigner.xaml.cs
- WebPartCloseVerb.cs
- HtmlInputImage.cs
- FlowDocumentView.cs
- GridViewAutoFormat.cs
- XmlNamespaceMappingCollection.cs
- MultiBindingExpression.cs
- Adorner.cs
- ManagedFilter.cs
- Keyboard.cs
- RotateTransform.cs
- Matrix3DStack.cs
- AnnotationStore.cs
- IDataContractSurrogate.cs
- SQLDecimal.cs
- EventSetter.cs
- DataServiceStreamProviderWrapper.cs
- OracleInfoMessageEventArgs.cs
- DPCustomTypeDescriptor.cs
- PermissionSetEnumerator.cs
- Base64Encoder.cs
- DisposableCollectionWrapper.cs
- EventRoute.cs
- ArcSegment.cs
- HtmlElementCollection.cs
- SlotInfo.cs
- TCPListener.cs