Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / XamlIntegration / XamlWriterExtensions.cs / 1305376 / XamlWriterExtensions.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.XamlIntegration { using System; using System.Xaml; using System.Runtime; static class XamlWriterExtensions { public static void PropagateLineInfo(XamlWriter targetWriter, IXamlLineInfo lineInfo) { if (lineInfo != null) { IXamlLineInfoConsumer consumer = targetWriter as IXamlLineInfoConsumer; Fx.Assert(consumer != null && consumer.ShouldProvideLineInfo, "Should only call this function to write into a XamlNodeQueue.Writer, which is always IXamlLineInfoConsumer"); consumer.SetLineInfo(lineInfo.LineNumber, lineInfo.LinePosition); } } public static void PropagateLineInfo(XamlWriter targetWriter, int lineNumber, int linePosition) { IXamlLineInfoConsumer consumer = targetWriter as IXamlLineInfoConsumer; Fx.Assert(consumer != null && consumer.ShouldProvideLineInfo, "Should only call this function to write into a XamlNodeQueue.Writer, which is always IXamlLineInfoConsumer"); consumer.SetLineInfo(lineNumber, linePosition); } // This method is a workaround for TFS bug #788190, since XamlReader.ReadSubtree() should (but doesn't) preserve IXamlLineInfo on the subreader public static void Transform(XamlReader reader, XamlWriter writer, IXamlLineInfo readerLineInfo, bool closeWriter) { IXamlLineInfoConsumer consumer = writer as IXamlLineInfoConsumer; Fx.Assert(consumer != null && consumer.ShouldProvideLineInfo, "Should only call this function to write into a XamlNodeQueue.Writer, which is always IXamlLineInfoConsumer"); bool shouldPassLineNumberInfo = false; if (readerLineInfo != null) { shouldPassLineNumberInfo = true; } while (reader.Read()) { if (shouldPassLineNumberInfo) { consumer.SetLineInfo(readerLineInfo.LineNumber, readerLineInfo.LinePosition); } writer.WriteNode(reader); } if (closeWriter) { writer.Close(); } } public static void WriteNode(this XamlWriter writer, XamlReader reader, IXamlLineInfo lineInfo) { PropagateLineInfo(writer, lineInfo); writer.WriteNode(reader); } public static void WriteEndMember(this XamlWriter writer, IXamlLineInfo lineInfo) { PropagateLineInfo(writer, lineInfo); writer.WriteEndMember(); } public static void WriteEndObject(this XamlWriter writer, IXamlLineInfo lineInfo) { PropagateLineInfo(writer, lineInfo); writer.WriteEndObject(); } public static void WriteGetObject(this XamlWriter writer, IXamlLineInfo lineInfo) { PropagateLineInfo(writer, lineInfo); writer.WriteGetObject(); } public static void WriteNamespace(this XamlWriter writer, NamespaceDeclaration namespaceDeclaration, IXamlLineInfo lineInfo) { PropagateLineInfo(writer, lineInfo); writer.WriteNamespace(namespaceDeclaration); } public static void WriteStartMember(this XamlWriter writer, XamlMember xamlMember, IXamlLineInfo lineInfo) { PropagateLineInfo(writer, lineInfo); writer.WriteStartMember(xamlMember); } public static void WriteStartMember(this XamlWriter writer, XamlMember xamlMember, int lineNumber, int linePosition) { PropagateLineInfo(writer, lineNumber, linePosition); writer.WriteStartMember(xamlMember); } public static void WriteStartObject(this XamlWriter writer, XamlType type, IXamlLineInfo lineInfo) { PropagateLineInfo(writer, lineInfo); writer.WriteStartObject(type); } public static void WriteValue(this XamlWriter writer, object value, IXamlLineInfo lineInfo) { PropagateLineInfo(writer, lineInfo); writer.WriteValue(value); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RedirectionProxy.cs
- TextWriter.cs
- PagerStyle.cs
- DialogResultConverter.cs
- RealProxy.cs
- DatagridviewDisplayedBandsData.cs
- DatagridviewDisplayedBandsData.cs
- ObjectSet.cs
- FixedTextPointer.cs
- FullTextLine.cs
- TypefaceMap.cs
- CroppedBitmap.cs
- CompilerCollection.cs
- DataTableClearEvent.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- ContainerControl.cs
- ObjectHandle.cs
- HttpChannelHelpers.cs
- MultitargetingHelpers.cs
- CodePageEncoding.cs
- RegexCapture.cs
- Identity.cs
- FormatterConverter.cs
- XmlSchemaCompilationSettings.cs
- OracleConnectionStringBuilder.cs
- UnsafeNetInfoNativeMethods.cs
- ControlParameter.cs
- BinaryNode.cs
- Pool.cs
- SessionPageStateSection.cs
- FixedSOMLineRanges.cs
- CardSpaceSelector.cs
- safemediahandle.cs
- QueryResult.cs
- ReverseQueryOperator.cs
- WindowsBrush.cs
- ObjectReaderCompiler.cs
- SoapIgnoreAttribute.cs
- Attributes.cs
- OdbcError.cs
- EditorPartCollection.cs
- _HelperAsyncResults.cs
- ToolboxItemSnapLineBehavior.cs
- PreviewPageInfo.cs
- ClusterSafeNativeMethods.cs
- safex509handles.cs
- NativeObjectSecurity.cs
- wgx_exports.cs
- StandardRuntimeEnumValidator.cs
- QueryableDataSourceView.cs
- XmlNamedNodeMap.cs
- ConsoleKeyInfo.cs
- ProfileGroupSettings.cs
- StringPropertyBuilder.cs
- PackageStore.cs
- ThicknessAnimation.cs
- BamlTreeMap.cs
- SinglePhaseEnlistment.cs
- ReadonlyMessageFilter.cs
- ContentElementAutomationPeer.cs
- InputProviderSite.cs
- IdentityManager.cs
- HtmlLink.cs
- DataRecord.cs
- URLMembershipCondition.cs
- SoapFormatter.cs
- BitmapFrame.cs
- EnumerableRowCollection.cs
- UriWriter.cs
- ViewManagerAttribute.cs
- sqlcontext.cs
- UpdateDelegates.Generated.cs
- Util.cs
- TreeViewCancelEvent.cs
- ZipIORawDataFileBlock.cs
- recordstatescratchpad.cs
- ProtocolsSection.cs
- StringUtil.cs
- DataExpression.cs
- MultiByteCodec.cs
- PeerValidationBehavior.cs
- NamespaceEmitter.cs
- CustomAttributeFormatException.cs
- ManualResetEventSlim.cs
- NetworkInformationException.cs
- PerfCounters.cs
- ConfigurationLocation.cs
- LinearGradientBrush.cs
- WebSysDescriptionAttribute.cs
- CodeArgumentReferenceExpression.cs
- DocumentReferenceCollection.cs
- SQLInt32.cs
- TextServicesManager.cs
- EndpointConfigContainer.cs
- UrlAuthorizationModule.cs
- TraceHandlerErrorFormatter.cs
- MetadataItemCollectionFactory.cs
- DeviceContexts.cs
- MarginCollapsingState.cs
- SqlClientMetaDataCollectionNames.cs