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
- BridgeDataRecord.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- PromptEventArgs.cs
- FormsAuthenticationEventArgs.cs
- DataGridHeaderBorder.cs
- XmlImplementation.cs
- DataListItemCollection.cs
- FunctionQuery.cs
- PermissionToken.cs
- SemanticTag.cs
- SecurityTokenValidationException.cs
- LicenseException.cs
- TextRange.cs
- SqlCaseSimplifier.cs
- HtmlButton.cs
- HttpModuleAction.cs
- TextRunProperties.cs
- DocumentXmlWriter.cs
- DataServiceQuery.cs
- ResourceContainer.cs
- ValidationHelper.cs
- WindowsListBox.cs
- ColorContextHelper.cs
- TrackingProvider.cs
- TextBoxAutoCompleteSourceConverter.cs
- ToolStripGripRenderEventArgs.cs
- ScrollItemProviderWrapper.cs
- SrgsSemanticInterpretationTag.cs
- XmlSchemaFacet.cs
- ReadOnlyHierarchicalDataSource.cs
- UnsafeNativeMethods.cs
- GenericAuthenticationEventArgs.cs
- SafeCloseHandleCritical.cs
- EntryIndex.cs
- CompModSwitches.cs
- StorageTypeMapping.cs
- BuiltInPermissionSets.cs
- EditorAttribute.cs
- GPPOINTF.cs
- ThousandthOfEmRealDoubles.cs
- ChameleonKey.cs
- HttpException.cs
- DataSourceDescriptorCollection.cs
- RectIndependentAnimationStorage.cs
- CatalogPart.cs
- StrokeCollection.cs
- ChameleonKey.cs
- X509CertificateClaimSet.cs
- TdsValueSetter.cs
- FormClosedEvent.cs
- LocalizedNameDescriptionPair.cs
- TerminateDesigner.cs
- LabelEditEvent.cs
- XmlSchema.cs
- WebControlParameterProxy.cs
- BmpBitmapEncoder.cs
- XmlValidatingReader.cs
- BindingSourceDesigner.cs
- ActivityIdHeader.cs
- WindowsIdentity.cs
- ChannelTokenTypeConverter.cs
- StreamHelper.cs
- SynthesizerStateChangedEventArgs.cs
- ImageFormatConverter.cs
- ActivationArguments.cs
- MimeXmlReflector.cs
- HtmlToClrEventProxy.cs
- SecurityTokenInclusionMode.cs
- LoginUtil.cs
- FontCacheLogic.cs
- DefaultValueTypeConverter.cs
- AggregateNode.cs
- VolatileResourceManager.cs
- _NegotiateClient.cs
- MediaTimeline.cs
- NotFiniteNumberException.cs
- RTTypeWrapper.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ReadOnlyHierarchicalDataSourceView.cs
- QueryGeneratorBase.cs
- SmiConnection.cs
- IImplicitResourceProvider.cs
- RightsManagementInformation.cs
- ButtonChrome.cs
- BitStack.cs
- Binding.cs
- ToolStripArrowRenderEventArgs.cs
- DataGridViewColumnTypeEditor.cs
- TranslateTransform.cs
- ProvidePropertyAttribute.cs
- DiscoveryDocumentLinksPattern.cs
- ClientSettingsProvider.cs
- ButtonChrome.cs
- XmlSchemaObject.cs
- SmtpReplyReader.cs
- SpecularMaterial.cs
- WorkflowEventArgs.cs
- OracleDataReader.cs
- ConfigXmlCDataSection.cs
- SystemColors.cs