Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Compiler / ReferencedAssemblyResolver.cs / 1305376 / ReferencedAssemblyResolver.cs
namespace System.Workflow.ComponentModel.Compiler { using System; using System.Reflection; using System.Collections.Specialized; using System.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.ComponentModel.Design; #region Class Assembly resolver // In the cases where the WorkflowCompiler is invoked directly, we need to deserialize the // xoml before we can create the real TypeProvider, hence it is necessary to look at the // referenced assemblies for any types that fail to load. In the VS scenarios, the TypeProvider // has already been created and the WorkflowMarkupSerializer will use it first. internal sealed class ReferencedAssemblyResolver { private StringCollection referencedAssemblies = new StringCollection(); private Assembly localAssembly; private bool resolving = false; public ReferencedAssemblyResolver(StringCollection referencedAssemblies, Assembly localAssembly) { this.referencedAssemblies = referencedAssemblies; this.localAssembly = localAssembly; } public Assembly ResolveEventHandler(object sender, ResolveEventArgs args) { return ResolveAssembly(args.Name); } internal void SetLocalAssembly(Assembly localAsm) { this.localAssembly = localAsm; } private Assembly ResolveAssembly(string name) { if (this.resolving) return null; // First look for the local assembly. if (this.localAssembly != null && name == this.localAssembly.FullName) return this.localAssembly; try { this.resolving = true; AssemblyName assemblyName = new AssemblyName(name); // Then try the referenced assemblies. foreach (string assemblyPath in this.referencedAssemblies) { try { AssemblyName referenceAssemblyName = AssemblyName.GetAssemblyName(assemblyPath); if (referenceAssemblyName != null && ParseHelpers.AssemblyNameEquals(referenceAssemblyName, assemblyName)) { Assembly reference = null; try { reference = Assembly.Load(referenceAssemblyName); } catch { reference = Assembly.LoadFrom(assemblyPath); } return reference; } } catch { // Eat up any exceptions! } } } finally { this.resolving = false; } return null; } } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Workflow.ComponentModel.Compiler { using System; using System.Reflection; using System.Collections.Specialized; using System.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.ComponentModel.Design; #region Class Assembly resolver // In the cases where the WorkflowCompiler is invoked directly, we need to deserialize the // xoml before we can create the real TypeProvider, hence it is necessary to look at the // referenced assemblies for any types that fail to load. In the VS scenarios, the TypeProvider // has already been created and the WorkflowMarkupSerializer will use it first. internal sealed class ReferencedAssemblyResolver { private StringCollection referencedAssemblies = new StringCollection(); private Assembly localAssembly; private bool resolving = false; public ReferencedAssemblyResolver(StringCollection referencedAssemblies, Assembly localAssembly) { this.referencedAssemblies = referencedAssemblies; this.localAssembly = localAssembly; } public Assembly ResolveEventHandler(object sender, ResolveEventArgs args) { return ResolveAssembly(args.Name); } internal void SetLocalAssembly(Assembly localAsm) { this.localAssembly = localAsm; } private Assembly ResolveAssembly(string name) { if (this.resolving) return null; // First look for the local assembly. if (this.localAssembly != null && name == this.localAssembly.FullName) return this.localAssembly; try { this.resolving = true; AssemblyName assemblyName = new AssemblyName(name); // Then try the referenced assemblies. foreach (string assemblyPath in this.referencedAssemblies) { try { AssemblyName referenceAssemblyName = AssemblyName.GetAssemblyName(assemblyPath); if (referenceAssemblyName != null && ParseHelpers.AssemblyNameEquals(referenceAssemblyName, assemblyName)) { Assembly reference = null; try { reference = Assembly.Load(referenceAssemblyName); } catch { reference = Assembly.LoadFrom(assemblyPath); } return reference; } } catch { // Eat up any exceptions! } } } finally { this.resolving = false; } return null; } } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CreateUserErrorEventArgs.cs
- CmsInterop.cs
- SqlServices.cs
- StreamReader.cs
- SiteMapNodeCollection.cs
- FormDocumentDesigner.cs
- PartEditor.cs
- AuthenticationServiceManager.cs
- EntryIndex.cs
- FormViewCommandEventArgs.cs
- TypedDataSourceCodeGenerator.cs
- Array.cs
- Point3DValueSerializer.cs
- SHA384.cs
- ISAPIWorkerRequest.cs
- SQLMoneyStorage.cs
- AutomationAttributeInfo.cs
- SharedPerformanceCounter.cs
- StringArrayConverter.cs
- WebPartMovingEventArgs.cs
- Identifier.cs
- FacetDescriptionElement.cs
- NotifyParentPropertyAttribute.cs
- MorphHelper.cs
- UIPermission.cs
- XmlDesignerDataSourceView.cs
- SoapAttributeAttribute.cs
- DummyDataSource.cs
- PropertyTabAttribute.cs
- ProgressBarBrushConverter.cs
- XmlAtomicValue.cs
- Tile.cs
- DynamicMethod.cs
- MultiBinding.cs
- AttachmentCollection.cs
- UpdatePanelControlTrigger.cs
- WsatConfiguration.cs
- AutomationEvent.cs
- ConstraintCollection.cs
- VarRemapper.cs
- GPRECTF.cs
- translator.cs
- SurrogateDataContract.cs
- StringPropertyBuilder.cs
- Version.cs
- ApplicationTrust.cs
- _RequestCacheProtocol.cs
- AsymmetricSignatureDeformatter.cs
- Light.cs
- DSGeneratorProblem.cs
- ObjectStorage.cs
- Package.cs
- ListControlConvertEventArgs.cs
- Helper.cs
- DigestTraceRecordHelper.cs
- ServiceOperationHelpers.cs
- PointLightBase.cs
- WindowsSpinner.cs
- StringResourceManager.cs
- RichListBox.cs
- DocumentGridPage.cs
- PathFigureCollection.cs
- SafeNativeMethods.cs
- WebServiceClientProxyGenerator.cs
- DropDownButton.cs
- BitmapCodecInfoInternal.cs
- BlurBitmapEffect.cs
- HtmlSelectionListAdapter.cs
- ExpressionDumper.cs
- TypeDescriptorContext.cs
- SafeEventLogWriteHandle.cs
- HttpException.cs
- MetabaseSettings.cs
- WebConfigurationHostFileChange.cs
- ToolStripDropTargetManager.cs
- Vector3DConverter.cs
- DbDataReader.cs
- ProfileProvider.cs
- DocumentApplicationJournalEntry.cs
- ReadOnlyDictionary.cs
- ValidationRuleCollection.cs
- KeyedCollection.cs
- TranslateTransform.cs
- BindingExpression.cs
- TextStore.cs
- HttpListenerException.cs
- BoundColumn.cs
- HandleTable.cs
- GridViewColumn.cs
- TypeKeyValue.cs
- WebAdminConfigurationHelper.cs
- _PooledStream.cs
- PropertyGrid.cs
- DiscreteKeyFrames.cs
- DrawingAttributesDefaultValueFactory.cs
- BuildProvider.cs
- CellTreeNode.cs
- HwndAppCommandInputProvider.cs
- WindowsFormsSynchronizationContext.cs
- QilVisitor.cs