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
- _SecureChannel.cs
- ObjectView.cs
- EntityContainerEmitter.cs
- ObjectPropertyMapping.cs
- ToolStripItemEventArgs.cs
- OneOfConst.cs
- TableRowCollection.cs
- FileEnumerator.cs
- ExceptionRoutedEventArgs.cs
- VariableElement.cs
- HierarchicalDataBoundControlAdapter.cs
- StructuralObject.cs
- TabPage.cs
- XmlNamespaceDeclarationsAttribute.cs
- PropertyAccessVisitor.cs
- TextEncodedRawTextWriter.cs
- PersianCalendar.cs
- HierarchicalDataSourceControl.cs
- RawStylusInputCustomDataList.cs
- BatchServiceHost.cs
- MailFileEditor.cs
- AuthenticationConfig.cs
- FramingFormat.cs
- HttpResponseWrapper.cs
- SinglePageViewer.cs
- SecurityHelper.cs
- PixelFormat.cs
- UpdateDelegates.Generated.cs
- PolicyManager.cs
- Model3DCollection.cs
- EnvelopedPkcs7.cs
- TypeLoadException.cs
- Matrix3DConverter.cs
- LayoutTable.cs
- QilVisitor.cs
- TextRangeSerialization.cs
- AddInAttribute.cs
- TableCell.cs
- SignerInfo.cs
- XmlUtf8RawTextWriter.cs
- ElementAtQueryOperator.cs
- LineServicesRun.cs
- GridViewCellAutomationPeer.cs
- TextProviderWrapper.cs
- VerificationAttribute.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- _TransmitFileOverlappedAsyncResult.cs
- _FixedSizeReader.cs
- DetailsViewUpdateEventArgs.cs
- QueryableDataSourceView.cs
- InternalBufferOverflowException.cs
- SQLSingleStorage.cs
- ClientTarget.cs
- WindowsScrollBarBits.cs
- SqlDataSourceQueryEditorForm.cs
- EventMemberCodeDomSerializer.cs
- ReachBasicContext.cs
- DataGridColumnCollection.cs
- NetMsmqSecurityElement.cs
- CompositionCommandSet.cs
- HtmlToClrEventProxy.cs
- HashHelpers.cs
- IOException.cs
- CoTaskMemHandle.cs
- DataShape.cs
- ReadOnlyCollection.cs
- UIElementParagraph.cs
- JapaneseLunisolarCalendar.cs
- ImportCatalogPart.cs
- TextEditorParagraphs.cs
- ColorConvertedBitmap.cs
- Property.cs
- ClientFormsIdentity.cs
- MarkupExtensionParser.cs
- ActiveXHost.cs
- Funcletizer.cs
- CurrentChangingEventArgs.cs
- ObservableDictionary.cs
- StringUtil.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- RepeatEnumerable.cs
- ImageAnimator.cs
- DataTableMapping.cs
- FileCodeGroup.cs
- EntityDataSourceDesigner.cs
- DataGridViewRowsAddedEventArgs.cs
- DataBoundControlHelper.cs
- LayoutManager.cs
- NotificationContext.cs
- PathFigure.cs
- CaseInsensitiveHashCodeProvider.cs
- EntityViewGenerationAttribute.cs
- KeySpline.cs
- AlgoModule.cs
- Style.cs
- UriTemplateTrieNode.cs
- DictionaryEntry.cs
- CharacterBufferReference.cs
- ProfileInfo.cs
- PublisherMembershipCondition.cs