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
- EntityDataSourceEntityTypeFilterItem.cs
- PageWrapper.cs
- SqlParameterCollection.cs
- DotExpr.cs
- FrameworkContentElement.cs
- Parameter.cs
- InputLanguageSource.cs
- CodeGenerator.cs
- Array.cs
- TextParagraph.cs
- TypeForwardedToAttribute.cs
- HideDisabledControlAdapter.cs
- CheckBoxAutomationPeer.cs
- CssTextWriter.cs
- SystemThemeKey.cs
- IDReferencePropertyAttribute.cs
- ImportContext.cs
- TransactionsSectionGroup.cs
- InternalConfigSettingsFactory.cs
- AssertHelper.cs
- EventHandlerService.cs
- NativeMethods.cs
- SafeUserTokenHandle.cs
- CanonicalFontFamilyReference.cs
- XmlWellformedWriterHelpers.cs
- EmissiveMaterial.cs
- CategoryNameCollection.cs
- TargetConverter.cs
- ConfigurationErrorsException.cs
- JsonByteArrayDataContract.cs
- RtfNavigator.cs
- Point.cs
- SwitchDesigner.xaml.cs
- ComponentDispatcher.cs
- ContentPresenter.cs
- RuntimeEnvironment.cs
- VectorKeyFrameCollection.cs
- PropertyValue.cs
- TargetConverter.cs
- SystemNetworkInterface.cs
- TCPListener.cs
- FrameworkElementFactoryMarkupObject.cs
- HMACSHA1.cs
- ChineseLunisolarCalendar.cs
- SyndicationSerializer.cs
- SafeNativeMethods.cs
- NegatedConstant.cs
- BitmapMetadataBlob.cs
- UTF7Encoding.cs
- ConnectionPoolManager.cs
- WithStatement.cs
- SmiTypedGetterSetter.cs
- QueueProcessor.cs
- DuplicateMessageDetector.cs
- CookieProtection.cs
- SharedPersonalizationStateInfo.cs
- TemplateNameScope.cs
- PropertiesTab.cs
- MissingMethodException.cs
- NeutralResourcesLanguageAttribute.cs
- NamespaceList.cs
- TrackBarRenderer.cs
- WebBrowsableAttribute.cs
- HostedImpersonationContext.cs
- Triplet.cs
- GenericTextProperties.cs
- SqlTriggerAttribute.cs
- PointAnimationClockResource.cs
- OutputCacheProfileCollection.cs
- XmlValidatingReaderImpl.cs
- LinqDataSourceDisposeEventArgs.cs
- AttributedMetaModel.cs
- Evidence.cs
- EmbossBitmapEffect.cs
- RegexFCD.cs
- ConfigurationStrings.cs
- ElementHost.cs
- IntMinMaxAggregationOperator.cs
- COMException.cs
- PrintDialog.cs
- OleDbConnectionInternal.cs
- X509RawDataKeyIdentifierClause.cs
- CharConverter.cs
- UIElement3DAutomationPeer.cs
- DesignerSerializerAttribute.cs
- TextSelectionHelper.cs
- WorkflowTraceTransfer.cs
- EncryptedKeyIdentifierClause.cs
- PropertyTabChangedEvent.cs
- DateTime.cs
- LoginUtil.cs
- HashHelper.cs
- UIElement3D.cs
- DBSchemaTable.cs
- CleanUpVirtualizedItemEventArgs.cs
- ThreadPool.cs
- ServiceReference.cs
- BoundingRectTracker.cs
- DataGridCommandEventArgs.cs
- FileInfo.cs