Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PingOptions.cs
- DefaultExpressionVisitor.cs
- ProcessStartInfo.cs
- List.cs
- CodeDomConfigurationHandler.cs
- NavigateUrlConverter.cs
- SamlEvidence.cs
- RtfToXamlLexer.cs
- HtmlForm.cs
- SmiEventSink_Default.cs
- DataServiceHostFactory.cs
- HttpCookie.cs
- DefaultTextStore.cs
- ProcessManager.cs
- TouchPoint.cs
- TypeConverterValueSerializer.cs
- BamlLocalizer.cs
- Wow64ConfigurationLoader.cs
- GACIdentityPermission.cs
- VectorCollection.cs
- Animatable.cs
- Publisher.cs
- FilteredAttributeCollection.cs
- CustomErrorCollection.cs
- UIPropertyMetadata.cs
- ListenerUnsafeNativeMethods.cs
- MessageDispatch.cs
- FileLoadException.cs
- DesignBindingValueUIHandler.cs
- TextElementEnumerator.cs
- ParentQuery.cs
- Helper.cs
- UserControl.cs
- Paragraph.cs
- CopyOnWriteList.cs
- __ComObject.cs
- XmlQueryCardinality.cs
- ClassDataContract.cs
- DataContractSerializerSection.cs
- WebServiceFaultDesigner.cs
- XsdDateTime.cs
- WebControlParameterProxy.cs
- SessionEndingCancelEventArgs.cs
- loginstatus.cs
- AttributeUsageAttribute.cs
- CellCreator.cs
- DoubleAnimationUsingKeyFrames.cs
- SqlRowUpdatingEvent.cs
- InvalidFilterCriteriaException.cs
- OleDbParameterCollection.cs
- CommonDialog.cs
- SemanticResolver.cs
- XmlSchemaObjectTable.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- XomlDesignerLoader.cs
- PrintController.cs
- XmlReader.cs
- ISO2022Encoding.cs
- PromptBuilder.cs
- ResourceManager.cs
- StringConverter.cs
- FontEmbeddingManager.cs
- FieldNameLookup.cs
- ModelPropertyCollectionImpl.cs
- UnicastIPAddressInformationCollection.cs
- HtmlToClrEventProxy.cs
- VirtualPathUtility.cs
- DefinitionBase.cs
- Literal.cs
- QilExpression.cs
- Geometry3D.cs
- TableParaClient.cs
- ProxyRpc.cs
- WebPartConnectionsDisconnectVerb.cs
- OrderByQueryOptionExpression.cs
- Int64AnimationBase.cs
- SafeHandles.cs
- ObjectDataSourceView.cs
- DbConnectionPoolGroupProviderInfo.cs
- PropertyValue.cs
- CommandDesigner.cs
- WarningException.cs
- DataGridViewTextBoxEditingControl.cs
- HtmlLink.cs
- AudioSignalProblemOccurredEventArgs.cs
- DateTimeFormat.cs
- ToolStripLocationCancelEventArgs.cs
- StringDictionaryEditor.cs
- XmlILCommand.cs
- FacetChecker.cs
- GridViewAutoFormat.cs
- DataGridViewHitTestInfo.cs
- FrugalMap.cs
- HttpRuntimeSection.cs
- ChangePassword.cs
- Tile.cs
- ApplicationActivator.cs
- MenuItemCollection.cs
- CommandArguments.cs
- DataListCommandEventArgs.cs