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
- CorrelationToken.cs
- InteropEnvironment.cs
- ClaimComparer.cs
- JoinSymbol.cs
- ObjectReferenceStack.cs
- GridSplitter.cs
- DetailsViewCommandEventArgs.cs
- CreateUserWizardStep.cs
- TemplateParser.cs
- ProviderBase.cs
- ExceptionUtility.cs
- DLinqTableProvider.cs
- AssemblyBuilder.cs
- SqlMethodTransformer.cs
- DataTemplate.cs
- UInt16Storage.cs
- StrongNamePublicKeyBlob.cs
- SqlSelectClauseBuilder.cs
- CustomCategoryAttribute.cs
- MimeParameter.cs
- CatalogPart.cs
- CompilerState.cs
- ClientSettingsProvider.cs
- DataGridColumnDropSeparator.cs
- UIntPtr.cs
- ErrorInfoXmlDocument.cs
- ImageMap.cs
- PageContent.cs
- SimplePropertyEntry.cs
- NamedPermissionSet.cs
- HttpHostedTransportConfiguration.cs
- XmlSerializationGeneratedCode.cs
- PageAsyncTaskManager.cs
- DbModificationClause.cs
- ColumnResizeAdorner.cs
- ErrorHandler.cs
- FacetDescription.cs
- ColumnMapVisitor.cs
- PeerNameRegistration.cs
- HotSpotCollectionEditor.cs
- SqlClientMetaDataCollectionNames.cs
- SkinBuilder.cs
- DbConnectionPoolIdentity.cs
- DataContext.cs
- SetState.cs
- ResourceDisplayNameAttribute.cs
- LinqDataSourceDeleteEventArgs.cs
- TaskExtensions.cs
- HelpProvider.cs
- ModuleConfigurationInfo.cs
- Point.cs
- XmlSchemaImporter.cs
- NominalTypeEliminator.cs
- InputReport.cs
- InlineCollection.cs
- BrowsableAttribute.cs
- Transform3DGroup.cs
- TransportationConfigurationTypeInstallComponent.cs
- SessionParameter.cs
- DbParameterCollectionHelper.cs
- ApplicationSecurityInfo.cs
- CodeDirectionExpression.cs
- PhonemeConverter.cs
- SoapMessage.cs
- EndpointDiscoveryMetadata.cs
- TranslateTransform.cs
- serverconfig.cs
- HandleRef.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- EditorOptionAttribute.cs
- NamedObjectList.cs
- XamlHostingSectionGroup.cs
- TypeReference.cs
- ColorTranslator.cs
- ServiceModelDictionary.cs
- ClientProtocol.cs
- WindowVisualStateTracker.cs
- Window.cs
- SqlRowUpdatedEvent.cs
- ButtonBaseAdapter.cs
- MessageBox.cs
- CommandID.cs
- FileDialogPermission.cs
- ModelPropertyCollectionImpl.cs
- ReferenceService.cs
- Size3DValueSerializer.cs
- ListBindingHelper.cs
- ReadOnlyDataSource.cs
- StrokeRenderer.cs
- PrimitiveSchema.cs
- TreeNodeCollection.cs
- ReliabilityContractAttribute.cs
- ISO2022Encoding.cs
- FlowDocumentScrollViewer.cs
- X509ServiceCertificateAuthenticationElement.cs
- TriggerActionCollection.cs
- FontFamily.cs
- TagMapInfo.cs
- PerformanceCounterPermissionAttribute.cs
- AvtEvent.cs