Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Serializer / PrimitiveCodeDomSerializer.cs / 1305376 / PrimitiveCodeDomSerializer.cs
namespace System.Workflow.ComponentModel.Serialization { using System; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; using System.Collections; using System.Resources; using System.Workflow.ComponentModel.Design; using System.Collections.Generic; using Microsoft.CSharp; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Compiler; using System.CodeDom.Compiler; using System.IO; using System.Reflection; using System.Diagnostics; #region Class PrimitiveCodeDomSerializer // work around : PD7's PrimitiveCodeDomSerializer does not handle well strings bigger than 200 characters, // we push our own version to fix it. internal class PrimitiveCodeDomSerializer : CodeDomSerializer { private static readonly string JSharpFileExtension = ".jsl"; private static PrimitiveCodeDomSerializer defaultSerializer; internal static PrimitiveCodeDomSerializer Default { get { if (defaultSerializer == null) { defaultSerializer = new PrimitiveCodeDomSerializer(); } return defaultSerializer; } } public override object Serialize(IDesignerSerializationManager manager, object value) { CodeExpression expression = new CodePrimitiveExpression(value); if (value == null || value is bool || value is char || value is int || value is float || value is double) { // work aroundf for J#, since they don't support auto-boxing of value types yet. CodeDomProvider codeProvider = manager.GetService(typeof(CodeDomProvider)) as CodeDomProvider; if (codeProvider != null && String.Equals(codeProvider.FileExtension, JSharpFileExtension)) { // See if we are boxing - if so, insert a cast. ExpressionContext cxt = manager.Context[typeof(ExpressionContext)] as ExpressionContext; //Debug.Assert(cxt != null, "No expression context on stack - J# boxing cast will not be inserted"); if (cxt != null) { if (cxt.ExpressionType == typeof(object)) { expression = new CodeCastExpression(value.GetType(), expression); expression.UserData.Add("CastIsBoxing", true); } } } return expression; } String stringValue = value as string; if (stringValue != null) { // WinWS: The commented code breaks us when we have long strings //if (stringValue.Length > 200) //{ // return SerializeToResourceExpression(manager, stringValue); //} //else return expression; } // generate a cast for non-int types because we won't parse them properly otherwise because we won't know to convert // them to the narrow form. // return new CodeCastExpression(new CodeTypeReference(value.GetType()), expression); } } #endregion } // 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
- HttpCapabilitiesEvaluator.cs
- StaticExtensionConverter.cs
- StyleSelector.cs
- SqlConnectionManager.cs
- HiddenFieldPageStatePersister.cs
- MouseEventArgs.cs
- MembershipPasswordException.cs
- FixedTextView.cs
- DesignerActionListCollection.cs
- bindurihelper.cs
- X509ThumbprintKeyIdentifierClause.cs
- ViewCellSlot.cs
- DateTimeSerializationSection.cs
- EventLogPermissionHolder.cs
- NavigationHelper.cs
- ColorKeyFrameCollection.cs
- ToolStripRenderer.cs
- WebPartDisplayMode.cs
- ButtonFlatAdapter.cs
- XPathBinder.cs
- TextSerializer.cs
- QilInvokeLateBound.cs
- ReachFixedDocumentSerializer.cs
- ConfigurationManager.cs
- XPathDocumentNavigator.cs
- HttpCacheParams.cs
- LinqDataSource.cs
- KeyGestureValueSerializer.cs
- CollectionBase.cs
- BinaryExpression.cs
- WebPartConnectionsDisconnectVerb.cs
- AssociativeAggregationOperator.cs
- CommentEmitter.cs
- QilIterator.cs
- ExcCanonicalXml.cs
- Queue.cs
- EncoderReplacementFallback.cs
- RuleRef.cs
- ObjectViewListener.cs
- OperationContractAttribute.cs
- CommonProperties.cs
- Selector.cs
- DataSysAttribute.cs
- Compiler.cs
- RunInstallerAttribute.cs
- ToolStripButton.cs
- __ConsoleStream.cs
- DataGridViewColumnTypePicker.cs
- ExpressionBuilder.cs
- _SslStream.cs
- _UriTypeConverter.cs
- GestureRecognitionResult.cs
- RequestNavigateEventArgs.cs
- XPathSelectionIterator.cs
- _UriSyntax.cs
- AccessibilityApplicationManager.cs
- FastEncoder.cs
- Console.cs
- DSASignatureDeformatter.cs
- EntityDataSourceChangedEventArgs.cs
- MessageSecurityException.cs
- OperatorExpressions.cs
- WebEvents.cs
- ByteConverter.cs
- NameScopePropertyAttribute.cs
- PostBackTrigger.cs
- DataListCommandEventArgs.cs
- HtmlAnchor.cs
- PropertyToken.cs
- ConfigXmlText.cs
- DeviceContext.cs
- Stream.cs
- FilteredDataSetHelper.cs
- EdmRelationshipRoleAttribute.cs
- AutoGeneratedFieldProperties.cs
- ResXResourceReader.cs
- FileDataSourceCache.cs
- JsonDeserializer.cs
- XamlPointCollectionSerializer.cs
- QueryContinueDragEvent.cs
- Math.cs
- FileDialogCustomPlace.cs
- ExpressionConverter.cs
- UnsafeNativeMethods.cs
- DataBindingCollectionConverter.cs
- ScalarType.cs
- DesignerOptionService.cs
- Int32CollectionValueSerializer.cs
- Border.cs
- StreamingContext.cs
- WebSysDescriptionAttribute.cs
- Win32.cs
- NativeRecognizer.cs
- MenuItemStyle.cs
- WebPartManager.cs
- Helper.cs
- IsolatedStorageFile.cs
- EdmScalarPropertyAttribute.cs
- WinEventTracker.cs
- RegionInfo.cs