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
- FocusWithinProperty.cs
- UnmanagedMarshal.cs
- WindowsFont.cs
- GenerateTemporaryTargetAssembly.cs
- CatalogPartChrome.cs
- GB18030Encoding.cs
- EditorPartChrome.cs
- xamlnodes.cs
- MergeLocalizationDirectives.cs
- MeasureData.cs
- HtmlMeta.cs
- TypeListConverter.cs
- SelectionPatternIdentifiers.cs
- ConfigurationConverterBase.cs
- QilReplaceVisitor.cs
- TypeSystem.cs
- RtfNavigator.cs
- NamespaceQuery.cs
- InvalidPropValue.cs
- SoapReflectionImporter.cs
- TextParagraph.cs
- BrowserTree.cs
- MatchingStyle.cs
- _NetworkingPerfCounters.cs
- CodeDefaultValueExpression.cs
- XmlUtilWriter.cs
- SmtpSection.cs
- UInt32Converter.cs
- DbConnectionPoolOptions.cs
- MatrixConverter.cs
- SingleAnimationBase.cs
- ValidatedControlConverter.cs
- AsymmetricSignatureFormatter.cs
- RadialGradientBrush.cs
- PropertySourceInfo.cs
- NameObjectCollectionBase.cs
- XmlQueryRuntime.cs
- ISFClipboardData.cs
- NotifyCollectionChangedEventArgs.cs
- AnimationLayer.cs
- CalendarButtonAutomationPeer.cs
- HttpResponse.cs
- PropertyChange.cs
- UniqueIdentifierService.cs
- SoapFault.cs
- Section.cs
- RecognizerBase.cs
- ParallelEnumerableWrapper.cs
- SystemResourceKey.cs
- AspNetSynchronizationContext.cs
- Mapping.cs
- XamlInt32CollectionSerializer.cs
- DataSourceControl.cs
- ExpressionNormalizer.cs
- UpdateCommandGenerator.cs
- FlowDocumentView.cs
- SqlRewriteScalarSubqueries.cs
- DateTimeUtil.cs
- DataGridViewCellStyleConverter.cs
- TypeForwardedToAttribute.cs
- TreeIterators.cs
- RoleGroupCollection.cs
- SchemaMerger.cs
- TextTrailingCharacterEllipsis.cs
- SessionStateModule.cs
- SecurityIdentifierConverter.cs
- XLinq.cs
- QueryPrefixOp.cs
- TranslateTransform3D.cs
- TextSelectionHelper.cs
- SqlStream.cs
- DataGridHyperlinkColumn.cs
- SmtpSection.cs
- TextEffectCollection.cs
- ToolStripSplitButton.cs
- SchemaElementDecl.cs
- DesignTimeVisibleAttribute.cs
- FrameworkElement.cs
- UnwrappedTypesXmlSerializerManager.cs
- FreeFormPanel.cs
- Graph.cs
- CodeFieldReferenceExpression.cs
- HttpBrowserCapabilitiesWrapper.cs
- SslStream.cs
- XComponentModel.cs
- UshortList2.cs
- OutOfProcStateClientManager.cs
- MediaContextNotificationWindow.cs
- HtmlWindow.cs
- Transform.cs
- SingleTagSectionHandler.cs
- MachineKeyConverter.cs
- Soap.cs
- WebPartsPersonalization.cs
- MethodAccessException.cs
- XmlCustomFormatter.cs
- HttpRuntimeSection.cs
- NaturalLanguageHyphenator.cs
- FontCacheLogic.cs
- WebPartRestoreVerb.cs