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
- OdbcTransaction.cs
- XmlAtomicValue.cs
- SendingRequestEventArgs.cs
- SchemaRegistration.cs
- ExpandCollapseProviderWrapper.cs
- MemoryMappedViewAccessor.cs
- FolderBrowserDialog.cs
- URI.cs
- PointLight.cs
- XmlExceptionHelper.cs
- XmlWriterSettings.cs
- Resources.Designer.cs
- HttpCacheVary.cs
- WindowsToolbar.cs
- xdrvalidator.cs
- XsdBuilder.cs
- _NegotiateClient.cs
- WSFederationHttpSecurity.cs
- DecoderFallbackWithFailureFlag.cs
- Visual3D.cs
- NotSupportedException.cs
- DetailsView.cs
- PriorityItem.cs
- APCustomTypeDescriptor.cs
- Cloud.cs
- TabItemWrapperAutomationPeer.cs
- ErrorTableItemStyle.cs
- SecurityToken.cs
- UnsafeNativeMethods.cs
- ProfileManager.cs
- CodeSnippetCompileUnit.cs
- DtdParser.cs
- ExpressionBuilderContext.cs
- AccessibleObject.cs
- DoubleKeyFrameCollection.cs
- CreateDataSourceDialog.cs
- FontSourceCollection.cs
- CultureTableRecord.cs
- EntityDataReader.cs
- FixedSOMPageElement.cs
- InheritablePropertyChangeInfo.cs
- DataServiceQueryProvider.cs
- SourceElementsCollection.cs
- FindRequestContext.cs
- PermissionRequestEvidence.cs
- OutputBuffer.cs
- XmlEncodedRawTextWriter.cs
- DataSourceConverter.cs
- MemoryMappedFile.cs
- InvalidAsynchronousStateException.cs
- COM2AboutBoxPropertyDescriptor.cs
- DataGridViewTopLeftHeaderCell.cs
- bidPrivateBase.cs
- ToolStripGripRenderEventArgs.cs
- Timeline.cs
- BitmapSourceSafeMILHandle.cs
- DbConnectionPoolCounters.cs
- ParameterBuilder.cs
- BinHexEncoding.cs
- EntityWithChangeTrackerStrategy.cs
- ReliabilityContractAttribute.cs
- TransactionState.cs
- RuntimeArgument.cs
- ValidateNames.cs
- IListConverters.cs
- Page.cs
- RuleSettings.cs
- MultipartContentParser.cs
- Accessible.cs
- IsolatedStorage.cs
- GeneratedView.cs
- TransactionFlowAttribute.cs
- DeobfuscatingStream.cs
- GetImportedCardRequest.cs
- FormViewCommandEventArgs.cs
- WebCategoryAttribute.cs
- EventLogTraceListener.cs
- StreamResourceInfo.cs
- Size.cs
- HighlightComponent.cs
- ChannelCacheDefaults.cs
- DbConnectionPool.cs
- TextPointer.cs
- SystemParameters.cs
- Stack.cs
- ChangeConflicts.cs
- ScriptReference.cs
- FlowThrottle.cs
- Rect.cs
- HotSpot.cs
- ConfigXmlText.cs
- TimeSpanStorage.cs
- EventTrigger.cs
- HttpWrapper.cs
- EpmTargetPathSegment.cs
- TextChange.cs
- COM2Properties.cs
- objectquery_tresulttype.cs
- IsolatedStorageFile.cs
- HijriCalendar.cs