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
- EdmScalarPropertyAttribute.cs
- ControlBuilderAttribute.cs
- DropDownHolder.cs
- ExpressionParser.cs
- ApplicationServicesHostFactory.cs
- OutOfProcStateClientManager.cs
- AsymmetricSignatureFormatter.cs
- StreamingContext.cs
- AutoSizeComboBox.cs
- Monitor.cs
- LineServices.cs
- SelectorAutomationPeer.cs
- PolicyStatement.cs
- Metafile.cs
- WorkflowQueue.cs
- EastAsianLunisolarCalendar.cs
- DESCryptoServiceProvider.cs
- MarkupCompilePass1.cs
- OracleException.cs
- XmlWriterTraceListener.cs
- TextElement.cs
- DataGridHelper.cs
- WSSecurityOneDotZeroReceiveSecurityHeader.cs
- WindowsSlider.cs
- XNodeNavigator.cs
- SqlError.cs
- NaturalLanguageHyphenator.cs
- StringValueSerializer.cs
- CodeMemberMethod.cs
- WorkflowTimerService.cs
- Exception.cs
- MethodInfo.cs
- IndentedTextWriter.cs
- RegexMatchCollection.cs
- PersonalizationProviderHelper.cs
- QuaternionAnimationBase.cs
- _ProxyChain.cs
- WebPartManager.cs
- ScalarOps.cs
- RepeatInfo.cs
- SchemaNotation.cs
- StatusBarAutomationPeer.cs
- JapaneseCalendar.cs
- OracleParameterBinding.cs
- GatewayDefinition.cs
- Site.cs
- TypeLibraryHelper.cs
- ShaderEffect.cs
- DesignerHelpers.cs
- SqlDelegatedTransaction.cs
- TextMarkerSource.cs
- Matrix3D.cs
- FormViewDeleteEventArgs.cs
- processwaithandle.cs
- DockProviderWrapper.cs
- EventSinkHelperWriter.cs
- DataListItem.cs
- SQLChars.cs
- ListViewTableCell.cs
- MissingMethodException.cs
- CodeIdentifiers.cs
- GiveFeedbackEventArgs.cs
- XmlRootAttribute.cs
- FixedTextBuilder.cs
- MergeFilterQuery.cs
- XpsFilter.cs
- ColorAnimation.cs
- SimpleExpression.cs
- WebBrowserPermission.cs
- SmiRecordBuffer.cs
- FileUpload.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- Pkcs9Attribute.cs
- TextRangeSerialization.cs
- RelationshipEntry.cs
- PageTheme.cs
- ProtocolsSection.cs
- BufferedGraphicsContext.cs
- SmtpReplyReader.cs
- DefinitionBase.cs
- Evidence.cs
- ValidationHelper.cs
- RenderCapability.cs
- CompilationUnit.cs
- CombinedTcpChannel.cs
- SecurityKeyEntropyMode.cs
- Privilege.cs
- QilReference.cs
- EnumerableWrapperWeakToStrong.cs
- HttpCapabilitiesEvaluator.cs
- Visitors.cs
- Events.cs
- WpfMemberInvoker.cs
- WindowsSecurityToken.cs
- MessageFilter.cs
- DbModificationCommandTree.cs
- AssemblyResourceLoader.cs
- XmlDataSourceView.cs
- ResourceAssociationSet.cs
- TimeSpan.cs