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
- UIElementAutomationPeer.cs
- InfoCardArgumentException.cs
- PropertyStore.cs
- XmlSerializationReader.cs
- TreeNode.cs
- IdentityHolder.cs
- ZipFileInfoCollection.cs
- AutomationFocusChangedEventArgs.cs
- DataObjectPastingEventArgs.cs
- XmlElementList.cs
- CultureInfo.cs
- HostExecutionContextManager.cs
- MsmqSecureHashAlgorithm.cs
- ObjectListDataBindEventArgs.cs
- TextPenaltyModule.cs
- HttpFileCollection.cs
- ChannelTraceRecord.cs
- TeredoHelper.cs
- EventPrivateKey.cs
- DataComponentNameHandler.cs
- CompilationPass2Task.cs
- JsonReader.cs
- ConnectionPoint.cs
- EpmCustomContentSerializer.cs
- UIntPtr.cs
- DocumentViewerHelper.cs
- DSACryptoServiceProvider.cs
- HybridWebProxyFinder.cs
- EmptyEnumerator.cs
- SqlDataSource.cs
- DrawingAttributeSerializer.cs
- ImportStoreException.cs
- EmbossBitmapEffect.cs
- _ListenerResponseStream.cs
- TextDecoration.cs
- UpdatePanel.cs
- QilGeneratorEnv.cs
- XmlSerializationGeneratedCode.cs
- TableFieldsEditor.cs
- CodeArrayIndexerExpression.cs
- ByteFacetDescriptionElement.cs
- DetailsViewActionList.cs
- DesignerVerbCollection.cs
- ThreadSafeList.cs
- ObjectFullSpanRewriter.cs
- IApplicationTrustManager.cs
- WmlSelectionListAdapter.cs
- OwnerDrawPropertyBag.cs
- MultiDataTrigger.cs
- WinEventHandler.cs
- DefaultEventAttribute.cs
- ExecutionEngineException.cs
- OdbcError.cs
- XmlQueryContext.cs
- TabRenderer.cs
- EntityViewGenerationConstants.cs
- ToolboxItemCollection.cs
- WebPartCatalogAddVerb.cs
- TextEditorSelection.cs
- StrongName.cs
- FormViewDeletedEventArgs.cs
- GridViewDeleteEventArgs.cs
- SwitchLevelAttribute.cs
- AssemblyResourceLoader.cs
- AccessDataSourceWizardForm.cs
- WebPartConnectionsDisconnectVerb.cs
- ZeroOpNode.cs
- MultitargetingHelpers.cs
- ComNativeDescriptor.cs
- MessageHeaderAttribute.cs
- SamlAudienceRestrictionCondition.cs
- LoginDesigner.cs
- TextDpi.cs
- ConstNode.cs
- MetadataItem_Static.cs
- StatusBarPanel.cs
- Translator.cs
- DescendantOverDescendantQuery.cs
- ConsumerConnectionPoint.cs
- StatusBar.cs
- XmlSerializerSection.cs
- HtmlProps.cs
- CustomErrorsSection.cs
- TableParaClient.cs
- ThrowHelper.cs
- SystemTcpStatistics.cs
- HttpRuntimeSection.cs
- DPTypeDescriptorContext.cs
- UserUseLicenseDictionaryLoader.cs
- EntityDataSourceContainerNameItem.cs
- DataBoundLiteralControl.cs
- ConnectionStringsExpressionBuilder.cs
- CompositeDesignerAccessibleObject.cs
- DBSqlParserColumn.cs
- ColorTranslator.cs
- ExpandableObjectConverter.cs
- WbemProvider.cs
- DesignOnlyAttribute.cs
- FrameworkRichTextComposition.cs
- dataobject.cs