Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / ErrorActivity.cs / 1305376 / ErrorActivity.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System; using System.Activities; using System.Activities.Presentation.View; using System.ComponentModel; using System.Runtime; using System.Xaml; using XamlDeferLoad = System.Windows.Markup.XamlDeferLoadAttribute; [Designer(typeof(ErrorActivity.ErrorActivityView))] internal class ErrorActivity : Activity { static readonly AttachableMemberIdentifier HasErrorActivitiesProperty = new AttachableMemberIdentifier(typeof(ErrorActivity), "HasErrorActivities"); internal const string ErrorNodesProperty = "ErrorNodes"; [Browsable(false)] [XamlDeferLoad(typeof(NodeListLoader), typeof(object))] public XamlNodeList ErrorNodes { get; set; } internal static bool GetHasErrorActivities(object target) { object result; if (AttachablePropertyServices.TryGetProperty(target, HasErrorActivitiesProperty, out result)) { return (bool)result; } return false; } internal static void SetHasErrorActivities(object target, bool value) { AttachablePropertyServices.SetProperty(target, HasErrorActivitiesProperty, value); } internal static void WriteNodeList(XamlWriter writer, XamlNodeList nodeList) { // We need to pass the ErrorNodes contents through as a NodeList, because XOW doesn't // currently support unknown types, even inside a DeferLoad block. // But if a NodeList is written to XOW as a Value, XOW will unpack, forcing us to re-buffer // the nodes in our deferring loader. So we wrap the NodeList value inside a dummy StartObject. writer.WriteStartObject(XamlLanguage.Object); writer.WriteStartMember(XamlLanguage.Initialization); writer.WriteValue(nodeList); writer.WriteEndMember(); writer.WriteEndObject(); } internal class NodeListLoader : XamlDeferringLoader { public override object Load(XamlReader xamlReader, IServiceProvider serviceProvider) { // Expects a nodestream produced by WriteNodesList xamlReader.Read(); xamlReader.Read(); xamlReader.Read(); Fx.Assert(xamlReader.NodeType == XamlNodeType.Value, "Expected Value node"); return (XamlNodeList)xamlReader.Value; } public override XamlReader Save(object value, IServiceProvider serviceProvider) { return ((XamlNodeList)value).GetReader(); } } internal class ErrorActivityView : WorkflowViewElement { public ErrorActivityView() { WorkflowViewService.ShowErrorInViewElement(this, SR.ActivityLoadError, null); } } } [Designer(typeof(ErrorActivity.ErrorActivityView))] internal class ErrorActivity: Activity { [Browsable(false)] [XamlDeferLoad(typeof(ErrorActivity.NodeListLoader), typeof(object))] public XamlNodeList ErrorNodes { get; set; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System; using System.Activities; using System.Activities.Presentation.View; using System.ComponentModel; using System.Runtime; using System.Xaml; using XamlDeferLoad = System.Windows.Markup.XamlDeferLoadAttribute; [Designer(typeof(ErrorActivity.ErrorActivityView))] internal class ErrorActivity : Activity { static readonly AttachableMemberIdentifier HasErrorActivitiesProperty = new AttachableMemberIdentifier(typeof(ErrorActivity), "HasErrorActivities"); internal const string ErrorNodesProperty = "ErrorNodes"; [Browsable(false)] [XamlDeferLoad(typeof(NodeListLoader), typeof(object))] public XamlNodeList ErrorNodes { get; set; } internal static bool GetHasErrorActivities(object target) { object result; if (AttachablePropertyServices.TryGetProperty(target, HasErrorActivitiesProperty, out result)) { return (bool)result; } return false; } internal static void SetHasErrorActivities(object target, bool value) { AttachablePropertyServices.SetProperty(target, HasErrorActivitiesProperty, value); } internal static void WriteNodeList(XamlWriter writer, XamlNodeList nodeList) { // We need to pass the ErrorNodes contents through as a NodeList, because XOW doesn't // currently support unknown types, even inside a DeferLoad block. // But if a NodeList is written to XOW as a Value, XOW will unpack, forcing us to re-buffer // the nodes in our deferring loader. So we wrap the NodeList value inside a dummy StartObject. writer.WriteStartObject(XamlLanguage.Object); writer.WriteStartMember(XamlLanguage.Initialization); writer.WriteValue(nodeList); writer.WriteEndMember(); writer.WriteEndObject(); } internal class NodeListLoader : XamlDeferringLoader { public override object Load(XamlReader xamlReader, IServiceProvider serviceProvider) { // Expects a nodestream produced by WriteNodesList xamlReader.Read(); xamlReader.Read(); xamlReader.Read(); Fx.Assert(xamlReader.NodeType == XamlNodeType.Value, "Expected Value node"); return (XamlNodeList)xamlReader.Value; } public override XamlReader Save(object value, IServiceProvider serviceProvider) { return ((XamlNodeList)value).GetReader(); } } internal class ErrorActivityView : WorkflowViewElement { public ErrorActivityView() { WorkflowViewService.ShowErrorInViewElement(this, SR.ActivityLoadError, null); } } } [Designer(typeof(ErrorActivity.ErrorActivityView))] internal class ErrorActivity : Activity { [Browsable(false)] [XamlDeferLoad(typeof(ErrorActivity.NodeListLoader), typeof(object))] public XamlNodeList ErrorNodes { get; set; } } } // 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
- MimeTypeMapper.cs
- ListViewItemMouseHoverEvent.cs
- FileSystemEventArgs.cs
- TripleDES.cs
- Int16.cs
- BitmapImage.cs
- SafeTokenHandle.cs
- FlowDocumentPaginator.cs
- FixedDocumentSequencePaginator.cs
- _BasicClient.cs
- CardSpacePolicyElement.cs
- PackageRelationshipCollection.cs
- documentsequencetextpointer.cs
- HostedImpersonationContext.cs
- TransformValueSerializer.cs
- BrowserTree.cs
- HttpFormatExtensions.cs
- CapabilitiesPattern.cs
- CustomExpressionEventArgs.cs
- ConfigXmlDocument.cs
- SqlDeflator.cs
- GroupQuery.cs
- FieldInfo.cs
- NotifyParentPropertyAttribute.cs
- WebPartConnectionsCloseVerb.cs
- BorderSidesEditor.cs
- CustomErrorCollection.cs
- _FtpDataStream.cs
- ErrorInfoXmlDocument.cs
- ScrollBar.cs
- Image.cs
- CollectionViewGroup.cs
- Decimal.cs
- ComponentRenameEvent.cs
- Matrix3D.cs
- Util.cs
- BindingMAnagerBase.cs
- HtmlForm.cs
- MultipleViewPattern.cs
- DeadCharTextComposition.cs
- ServerValidateEventArgs.cs
- followingquery.cs
- ClientScriptManager.cs
- RestHandler.cs
- SqlBulkCopyColumnMappingCollection.cs
- TextDecorationCollection.cs
- SqlDataSourceStatusEventArgs.cs
- Transform3D.cs
- DebuggerAttributes.cs
- Style.cs
- TextChange.cs
- HtmlInputRadioButton.cs
- PostBackOptions.cs
- XPathExpr.cs
- TableLayoutStyle.cs
- FileSystemEventArgs.cs
- Table.cs
- SymmetricAlgorithm.cs
- AncillaryOps.cs
- SqlInternalConnectionTds.cs
- DbConnectionOptions.cs
- OdbcTransaction.cs
- QuotedPrintableStream.cs
- MatrixCamera.cs
- GlobalItem.cs
- GZipStream.cs
- ClientUtils.cs
- ToolStripCustomTypeDescriptor.cs
- SymLanguageVendor.cs
- CommandConverter.cs
- BindingElementExtensionElement.cs
- NavigationProgressEventArgs.cs
- GeneralTransformGroup.cs
- FormView.cs
- DesignerTransactionCloseEvent.cs
- HitTestWithGeometryDrawingContextWalker.cs
- CompatibleIComparer.cs
- TableLayoutCellPaintEventArgs.cs
- TextRunCacheImp.cs
- Currency.cs
- TrailingSpaceComparer.cs
- TiffBitmapEncoder.cs
- ContentPlaceHolder.cs
- XpsSerializerFactory.cs
- IISUnsafeMethods.cs
- Label.cs
- FrugalList.cs
- CssTextWriter.cs
- AbstractSvcMapFileLoader.cs
- SafeUserTokenHandle.cs
- MediaSystem.cs
- RadioButton.cs
- TrackingProfileSerializer.cs
- _ConnectOverlappedAsyncResult.cs
- DeviceContexts.cs
- SocketPermission.cs
- ParameterModifier.cs
- NamespaceEmitter.cs
- EventHandlersDesigner.cs
- StylesEditorDialog.cs