Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SectionInformation.cs
- DispatcherExceptionEventArgs.cs
- TreeNodeCollectionEditorDialog.cs
- WindowsAltTab.cs
- ReflectPropertyDescriptor.cs
- MethodImplAttribute.cs
- CodeDefaultValueExpression.cs
- SchemaMerger.cs
- Label.cs
- WebPartConnectionsCloseVerb.cs
- RuntimeArgumentHandle.cs
- ServiceModelActivity.cs
- BooleanProjectedSlot.cs
- PieceNameHelper.cs
- RowVisual.cs
- TrustManagerMoreInformation.cs
- ProxyHelper.cs
- ZoneButton.cs
- MetadataCacheItem.cs
- ActiveXHost.cs
- IdnMapping.cs
- GridLengthConverter.cs
- FrameAutomationPeer.cs
- SspiNegotiationTokenAuthenticatorState.cs
- DisplayNameAttribute.cs
- SessionStateItemCollection.cs
- Trigger.cs
- DataTransferEventArgs.cs
- CompiledIdentityConstraint.cs
- SqlUnionizer.cs
- querybuilder.cs
- GenericEnumConverter.cs
- DataGridViewElement.cs
- Automation.cs
- WebBrowser.cs
- DrawingBrush.cs
- BitmapEffect.cs
- CopyAction.cs
- InputLangChangeRequestEvent.cs
- CellParaClient.cs
- ApplicationInfo.cs
- DeferredBinaryDeserializerExtension.cs
- TdsValueSetter.cs
- SpellerInterop.cs
- GlobalizationSection.cs
- ContentElement.cs
- QueueProcessor.cs
- CryptoStream.cs
- OleDbFactory.cs
- SystemPens.cs
- ComponentCollection.cs
- ConfigurationProperty.cs
- Select.cs
- DataSourceHelper.cs
- QilInvokeLateBound.cs
- SecurityContextCookieSerializer.cs
- PrefixHandle.cs
- InvalidProgramException.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- TreeNodeBinding.cs
- SqlMethodAttribute.cs
- wmiprovider.cs
- Pool.cs
- PLINQETWProvider.cs
- ServiceReference.cs
- SqlCacheDependencyDatabase.cs
- RegexCompilationInfo.cs
- TimelineClockCollection.cs
- ExpanderAutomationPeer.cs
- ServiceInstanceProvider.cs
- DataGridViewComboBoxCell.cs
- EventProxy.cs
- FontStretches.cs
- NumericPagerField.cs
- StsCommunicationException.cs
- EventSource.cs
- TabletCollection.cs
- DetailsViewRow.cs
- FileRecordSequence.cs
- DataErrorValidationRule.cs
- ValueConversionAttribute.cs
- ButtonFieldBase.cs
- FromRequest.cs
- DurableInstanceProvider.cs
- CapabilitiesRule.cs
- PointAnimationUsingPath.cs
- BinaryParser.cs
- EntityContainerEntitySetDefiningQuery.cs
- KeyPressEvent.cs
- CodeExpressionCollection.cs
- ListViewItemSelectionChangedEvent.cs
- ApplicationFileCodeDomTreeGenerator.cs
- PriorityBinding.cs
- DataServiceRequestOfT.cs
- RawTextInputReport.cs
- WebPartTracker.cs
- LoginView.cs
- AdornedElementPlaceholder.cs
- SqlDataSourceQueryEditorForm.cs
- TaskFactory.cs