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
- NamespaceExpr.cs
- SmtpMail.cs
- ArrayTypeMismatchException.cs
- ContainerControlDesigner.cs
- HttpCookieCollection.cs
- DataBoundControlHelper.cs
- HttpResponseWrapper.cs
- DataGridViewLayoutData.cs
- exports.cs
- ExtensibleClassFactory.cs
- HelloMessageCD1.cs
- MailAddressParser.cs
- MonthChangedEventArgs.cs
- ExpressionPrefixAttribute.cs
- EventSchemaTraceListener.cs
- xmlsaver.cs
- CompressedStack.cs
- TextBlockAutomationPeer.cs
- TdsParserStaticMethods.cs
- SafePointer.cs
- FileDialog_Vista_Interop.cs
- LayoutEvent.cs
- PersonalizableAttribute.cs
- PipelineDeploymentState.cs
- NotFiniteNumberException.cs
- CubicEase.cs
- ConnectionOrientedTransportManager.cs
- TreeView.cs
- OperationAbortedException.cs
- BaseParser.cs
- BuiltInPermissionSets.cs
- DataControlCommands.cs
- DataGridViewTextBoxColumn.cs
- QilIterator.cs
- AppearanceEditorPart.cs
- XAMLParseException.cs
- StylusButtonCollection.cs
- ActivityExecutionFilter.cs
- SystemTcpStatistics.cs
- FontStretches.cs
- HotSpotCollectionEditor.cs
- ExecutedRoutedEventArgs.cs
- RoutedEventConverter.cs
- ControlParameter.cs
- SessionState.cs
- TCEAdapterGenerator.cs
- AnnotationAuthorChangedEventArgs.cs
- JobStaple.cs
- TagPrefixCollection.cs
- XmlElement.cs
- DataColumnMappingCollection.cs
- CssTextWriter.cs
- CqlParserHelpers.cs
- PersonalizationProvider.cs
- StringToken.cs
- XmlnsCache.cs
- UriTemplateLiteralPathSegment.cs
- RootBuilder.cs
- MemberPath.cs
- AuthenticationService.cs
- XmlSchemaSimpleTypeRestriction.cs
- MetaChildrenColumn.cs
- LinqDataSource.cs
- RequiredArgumentAttribute.cs
- MultipartContentParser.cs
- GetPageCompletedEventArgs.cs
- JavaScriptString.cs
- NullableFloatSumAggregationOperator.cs
- TableLayout.cs
- Column.cs
- ExpressionPrefixAttribute.cs
- HttpListenerPrefixCollection.cs
- WindowsStatusBar.cs
- TextFormatterHost.cs
- QilStrConcat.cs
- BindingCompleteEventArgs.cs
- EventListenerClientSide.cs
- Interop.cs
- Region.cs
- QueryExpr.cs
- graph.cs
- SqlAliasesReferenced.cs
- ControlParameter.cs
- GridViewRowCollection.cs
- SqlClientFactory.cs
- SqlReferenceCollection.cs
- ImageSource.cs
- MachineKeySection.cs
- FrameworkRichTextComposition.cs
- ClientSettingsProvider.cs
- TextServicesHost.cs
- GroupQuery.cs
- OleDbReferenceCollection.cs
- StylusTip.cs
- XPathNodeInfoAtom.cs
- DateTimeValueSerializer.cs
- ImageUrlEditor.cs
- CompiledRegexRunner.cs
- ButtonAutomationPeer.cs
- TextProperties.cs