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
- XmlAttributes.cs
- NetTcpSecurity.cs
- assemblycache.cs
- StickyNoteHelper.cs
- OleCmdHelper.cs
- SizeChangedEventArgs.cs
- XhtmlConformanceSection.cs
- WindowHideOrCloseTracker.cs
- TPLETWProvider.cs
- GridViewColumn.cs
- LinkArea.cs
- UICuesEvent.cs
- Double.cs
- IsolatedStorageException.cs
- TdsValueSetter.cs
- SortKey.cs
- DesignerDataParameter.cs
- KeyInfo.cs
- TextOptions.cs
- XmlDataSourceNodeDescriptor.cs
- BamlCollectionHolder.cs
- SQLDoubleStorage.cs
- BridgeDataRecord.cs
- TypeBuilderInstantiation.cs
- UrlPath.cs
- CommonXSendMessage.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- MethodBuilderInstantiation.cs
- CryptoApi.cs
- CapabilitiesUse.cs
- XmlILStorageConverter.cs
- HasCopySemanticsAttribute.cs
- RewritingProcessor.cs
- UIElement.cs
- basemetadatamappingvisitor.cs
- TabControlAutomationPeer.cs
- SplitContainer.cs
- XmlSchemaAnnotated.cs
- UnknownBitmapEncoder.cs
- DisplayToken.cs
- BamlRecordWriter.cs
- TimelineGroup.cs
- StrongNameKeyPair.cs
- FrameSecurityDescriptor.cs
- DiscoveryDocument.cs
- DataRelation.cs
- UniqueTransportManagerRegistration.cs
- Int16Converter.cs
- FileRecordSequence.cs
- _LazyAsyncResult.cs
- ImageAnimator.cs
- SqlUtil.cs
- OleDbWrapper.cs
- DesignerCalendarAdapter.cs
- ComplexObject.cs
- MessageRpc.cs
- CustomValidator.cs
- OperatingSystem.cs
- XhtmlBasicTextViewAdapter.cs
- NumericExpr.cs
- MorphHelper.cs
- ThreadInterruptedException.cs
- IISMapPath.cs
- StringCollection.cs
- ContextMarshalException.cs
- OrderToken.cs
- SafeRightsManagementEnvironmentHandle.cs
- LogEntryHeaderSerializer.cs
- smtpconnection.cs
- TraceLevelStore.cs
- ThrowHelper.cs
- LinkUtilities.cs
- ScriptResourceHandler.cs
- AnchoredBlock.cs
- XslAst.cs
- WSHttpSecurityElement.cs
- ListViewDeletedEventArgs.cs
- TreeView.cs
- ScrollBar.cs
- LineMetrics.cs
- StructuralCache.cs
- SelectionItemPattern.cs
- TransformedBitmap.cs
- ValueSerializer.cs
- LiteralControl.cs
- OracleRowUpdatedEventArgs.cs
- CalculatedColumn.cs
- LineServicesCallbacks.cs
- ToolStripSplitStackLayout.cs
- DbgCompiler.cs
- SiteMapHierarchicalDataSourceView.cs
- AppearanceEditorPart.cs
- MemberInfoSerializationHolder.cs
- XamlTypeMapperSchemaContext.cs
- FolderBrowserDialogDesigner.cs
- ListGeneralPage.cs
- Canvas.cs
- RangeValuePatternIdentifiers.cs
- XamlParser.cs
- SqlDataRecord.cs