Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / XamlIntegration / ActivityXamlServices.cs / 1305376 / ActivityXamlServices.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.XamlIntegration { using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Reflection; using System.Xaml; using System.Xml; public static class ActivityXamlServices { static readonly XamlSchemaContext dynamicActivityReaderSchemaContext = new DynamicActivityReaderSchemaContext(); public static Activity Load(Stream stream) { if (stream == null) { throw FxTrace.Exception.ArgumentNull("stream"); } using (XmlReader xmlReader = XmlReader.Create(stream)) { return Load(xmlReader); } } public static Activity Load(string fileName) { if (fileName == null) { throw FxTrace.Exception.ArgumentNull("fileName"); } using (XmlReader xmlReader = XmlReader.Create(fileName)) { return Load(xmlReader); } } public static Activity Load(TextReader textReader) { if (textReader == null) { throw FxTrace.Exception.ArgumentNull("textReader"); } using (XmlReader xmlReader = XmlReader.Create(textReader)) { return Load(xmlReader); } } public static Activity Load(XmlReader xmlReader) { if (xmlReader == null) { throw FxTrace.Exception.ArgumentNull("xmlReader"); } using (XamlXmlReader xamlReader = new XamlXmlReader(xmlReader, dynamicActivityReaderSchemaContext)) { return Load(xamlReader); } } public static Activity Load(XamlReader xamlReader) { if (xamlReader == null) { throw FxTrace.Exception.ArgumentNull("xamlReader"); } DynamicActivityXamlReader dynamicActivityReader = new DynamicActivityXamlReader(xamlReader); object xamlObject = XamlServices.Load(dynamicActivityReader); Activity result = xamlObject as Activity; if (result == null) { throw FxTrace.Exception.Argument("reader", SR.ActivityXamlServicesRequiresActivity( xamlObject != null ? xamlObject.GetType().FullName : string.Empty)); } return result; } public static XamlReader CreateReader(Stream stream) { if (stream == null) { throw FxTrace.Exception.ArgumentNull("stream"); } return CreateReader(new XamlXmlReader(XmlReader.Create(stream), dynamicActivityReaderSchemaContext), dynamicActivityReaderSchemaContext); } public static XamlReader CreateReader(XamlReader innerReader) { if (innerReader == null) { throw FxTrace.Exception.ArgumentNull("innerReader"); } return new DynamicActivityXamlReader(innerReader); } public static XamlReader CreateReader(XamlReader innerReader, XamlSchemaContext schemaContext) { if (innerReader == null) { throw FxTrace.Exception.ArgumentNull("innerReader"); } if (schemaContext == null) { throw FxTrace.Exception.ArgumentNull("schemaContext"); } return new DynamicActivityXamlReader(innerReader, schemaContext); } public static XamlReader CreateBuilderReader(XamlReader innerReader) { if (innerReader == null) { throw FxTrace.Exception.ArgumentNull("innerReader"); } return new DynamicActivityXamlReader(true, innerReader, null); } public static XamlReader CreateBuilderReader(XamlReader innerReader, XamlSchemaContext schemaContext) { if (innerReader == null) { throw FxTrace.Exception.ArgumentNull("innerReader"); } if (schemaContext == null) { throw FxTrace.Exception.ArgumentNull("schemaContext"); } return new DynamicActivityXamlReader(true, innerReader, schemaContext); } public static XamlWriter CreateBuilderWriter(XamlWriter innerWriter) { if (innerWriter == null) { throw FxTrace.Exception.ArgumentNull("innerWriter"); } return new ActivityBuilderXamlWriter(innerWriter); } class DynamicActivityReaderSchemaContext : XamlSchemaContext { static bool serviceModelLoaded; const string serviceModelDll = "System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; const string serviceModelActivitiesDll = "System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; const string serviceModelNamespace = "http://schemas.microsoft.com/netfx/2009/xaml/servicemodel"; // Eventually this will be unnecessary since XAML team has changed the default behavior public DynamicActivityReaderSchemaContext() : base(new XamlSchemaContextSettings()) { } protected override XamlType GetXamlType(string xamlNamespace, string name, params XamlType[] typeArguments) { XamlType xamlType = base.GetXamlType(xamlNamespace, name, typeArguments); if (xamlType == null) { if (xamlNamespace == serviceModelNamespace && !serviceModelLoaded) { Assembly.Load(serviceModelDll); Assembly.Load(serviceModelActivitiesDll); serviceModelLoaded = true; xamlType = base.GetXamlType(xamlNamespace, name, typeArguments); } } return xamlType; } } } } // 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
- XmlReflectionMember.cs
- ContentType.cs
- CultureTableRecord.cs
- ColumnHeader.cs
- DesignerAttributeInfo.cs
- NegationPusher.cs
- DataGridState.cs
- DocumentPageHost.cs
- HierarchicalDataBoundControlAdapter.cs
- TemplateKeyConverter.cs
- Int16Animation.cs
- RegionInfo.cs
- TransformerInfoCollection.cs
- FamilyTypefaceCollection.cs
- AddInActivator.cs
- SecurityTokenRequirement.cs
- Rect.cs
- ScriptReference.cs
- cookiecontainer.cs
- LockedHandleGlyph.cs
- XamlDesignerSerializationManager.cs
- FlowDocumentFormatter.cs
- BezierSegment.cs
- AsnEncodedData.cs
- SoapAttributes.cs
- BamlLocalizabilityResolver.cs
- SiteMapNodeCollection.cs
- DebugView.cs
- EnumBuilder.cs
- Blend.cs
- elementinformation.cs
- ServicePoint.cs
- Rect3D.cs
- QueryOperationResponseOfT.cs
- Stroke.cs
- ContentFilePart.cs
- QueryUtil.cs
- ReferenceEqualityComparer.cs
- CompilationUtil.cs
- MappedMetaModel.cs
- DataGridViewCellStateChangedEventArgs.cs
- LineVisual.cs
- UnionExpr.cs
- ForeignKeyConstraint.cs
- ChangePassword.cs
- RSAPKCS1KeyExchangeFormatter.cs
- XmlSchemaDatatype.cs
- XamlUtilities.cs
- KnownTypes.cs
- DispatcherOperation.cs
- ObjectConverter.cs
- ControlAdapter.cs
- SqlProfileProvider.cs
- SmtpNetworkElement.cs
- CustomError.cs
- SecurityContext.cs
- mediaeventargs.cs
- ValidatorAttribute.cs
- SystemColorTracker.cs
- Section.cs
- PenThreadPool.cs
- HtmlInputPassword.cs
- ExcCanonicalXml.cs
- StylusButton.cs
- Rfc2898DeriveBytes.cs
- parserscommon.cs
- ExpressionBuilderContext.cs
- XPathArrayIterator.cs
- XmlComment.cs
- TraceListener.cs
- ResourceReferenceExpressionConverter.cs
- ToolStripComboBox.cs
- elementinformation.cs
- Stacktrace.cs
- Transform.cs
- OrderedDictionaryStateHelper.cs
- Stacktrace.cs
- EntityRecordInfo.cs
- SQLString.cs
- ArgumentException.cs
- ValidatorCollection.cs
- GorillaCodec.cs
- TextContainerHelper.cs
- ContentDisposition.cs
- XPathNodeList.cs
- DebugInfoExpression.cs
- OptimizedTemplateContent.cs
- DesignerSerializationVisibilityAttribute.cs
- RowUpdatingEventArgs.cs
- DispatcherExceptionFilterEventArgs.cs
- ExpressionEditorAttribute.cs
- ToolStripDropDownItem.cs
- MonthChangedEventArgs.cs
- invalidudtexception.cs
- CodeTypeParameter.cs
- exports.cs
- GridErrorDlg.cs
- CodeDOMUtility.cs
- IDictionary.cs
- SlipBehavior.cs