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
- ObjectAssociationEndMapping.cs
- XmlIgnoreAttribute.cs
- DBAsyncResult.cs
- PositiveTimeSpanValidatorAttribute.cs
- ExpandSegment.cs
- ObservableCollection.cs
- StackBuilderSink.cs
- ActiveDesignSurfaceEvent.cs
- WinEventWrap.cs
- MessageBox.cs
- SizeAnimationUsingKeyFrames.cs
- RoutedEventArgs.cs
- ValidationHelper.cs
- BoundingRectTracker.cs
- Container.cs
- NetworkInformationPermission.cs
- LocalIdKeyIdentifierClause.cs
- DetailsViewRowCollection.cs
- SoapReflectionImporter.cs
- BevelBitmapEffect.cs
- UnknownWrapper.cs
- UnicastIPAddressInformationCollection.cs
- PropertyDescriptor.cs
- PointHitTestParameters.cs
- DateTimeParse.cs
- HttpApplicationStateBase.cs
- KnownTypesHelper.cs
- PropertyBuilder.cs
- UnknownBitmapDecoder.cs
- RouteCollection.cs
- TableLayoutColumnStyleCollection.cs
- Literal.cs
- VariableAction.cs
- ManifestSignedXml.cs
- MutexSecurity.cs
- CmsUtils.cs
- DialogResultConverter.cs
- QueryOptionExpression.cs
- DataAccessor.cs
- NativeCompoundFileAPIs.cs
- ILGenerator.cs
- RadioButtonRenderer.cs
- MessageSecurityOverTcp.cs
- XmlRootAttribute.cs
- ToolStripPanel.cs
- IisTraceListener.cs
- ReadOnlyPropertyMetadata.cs
- UpWmlPageAdapter.cs
- InternalDuplexBindingElement.cs
- ContravarianceAdapter.cs
- SspiWrapper.cs
- BufferedOutputStream.cs
- PolicyVersionConverter.cs
- Message.cs
- DataSetMappper.cs
- BitStack.cs
- CustomError.cs
- StylusPlugInCollection.cs
- TypedReference.cs
- RelatedView.cs
- Cursor.cs
- XpsStructure.cs
- DataRecordInfo.cs
- BitmapEffect.cs
- WindowsEditBoxRange.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- ReservationCollection.cs
- PropertyGrid.cs
- SimpleApplicationHost.cs
- CSharpCodeProvider.cs
- ResXFileRef.cs
- CheckableControlBaseAdapter.cs
- DateTimeParse.cs
- XmlSerializerSection.cs
- DataGridViewComboBoxColumn.cs
- WebPartEditorOkVerb.cs
- CallContext.cs
- WindowsGraphicsWrapper.cs
- EnumConverter.cs
- PersonalizationStateInfo.cs
- ShaderEffect.cs
- BookmarkScopeHandle.cs
- TextEditorLists.cs
- FileUtil.cs
- FtpRequestCacheValidator.cs
- FileSystemInfo.cs
- TextProperties.cs
- ListenerHandler.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- TrustManager.cs
- DataSvcMapFileSerializer.cs
- OracleDataAdapter.cs
- PenContext.cs
- SamlAuthorizationDecisionStatement.cs
- TextStore.cs
- SchemaImporter.cs
- TextEncodedRawTextWriter.cs
- TextElementCollectionHelper.cs
- SqlStatistics.cs
- UnsafeNativeMethods.cs