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
- SecurityToken.cs
- KeyGestureConverter.cs
- GenericAuthenticationEventArgs.cs
- SecurityResources.cs
- BufferModesCollection.cs
- TraversalRequest.cs
- Privilege.cs
- RemotingAttributes.cs
- ConfigurationValidatorAttribute.cs
- WebPartsPersonalization.cs
- ReferenceService.cs
- FrameworkReadOnlyPropertyMetadata.cs
- EventArgs.cs
- SortedSetDebugView.cs
- Object.cs
- _TransmitFileOverlappedAsyncResult.cs
- ClonableStack.cs
- VectorCollectionValueSerializer.cs
- FaultFormatter.cs
- FreezableDefaultValueFactory.cs
- FontUnit.cs
- SQLSingleStorage.cs
- XhtmlConformanceSection.cs
- UInt32Converter.cs
- TableRow.cs
- TypeUnloadedException.cs
- OrderPreservingPipeliningSpoolingTask.cs
- SelectionPattern.cs
- Compilation.cs
- ScopeCompiler.cs
- ButtonRenderer.cs
- DetailsViewUpdatedEventArgs.cs
- SortableBindingList.cs
- EventEntry.cs
- MailBnfHelper.cs
- WebControlParameterProxy.cs
- NamespaceDecl.cs
- ConfigXmlComment.cs
- MemberRelationshipService.cs
- StylusCollection.cs
- SafeEventLogWriteHandle.cs
- SynchronousChannel.cs
- _HTTPDateParse.cs
- LoginView.cs
- SqlUdtInfo.cs
- diagnosticsswitches.cs
- RijndaelManagedTransform.cs
- ResXFileRef.cs
- ImagingCache.cs
- EqualityComparer.cs
- Point3DKeyFrameCollection.cs
- BitmapPalettes.cs
- querybuilder.cs
- MetadataException.cs
- CookieHandler.cs
- CapabilitiesPattern.cs
- DataContractFormatAttribute.cs
- TableLayoutPanel.cs
- RemoveStoryboard.cs
- EventOpcode.cs
- Sorting.cs
- FormsAuthenticationEventArgs.cs
- ConcatQueryOperator.cs
- ErrorRuntimeConfig.cs
- WindowsScrollBarBits.cs
- TextInfo.cs
- SessionSwitchEventArgs.cs
- AbandonedMutexException.cs
- HtmlFormWrapper.cs
- SafeNativeMethods.cs
- Profiler.cs
- Funcletizer.cs
- UnsafeNativeMethodsTablet.cs
- TransactionManager.cs
- httpserverutility.cs
- HostingEnvironment.cs
- WebPartDisplayMode.cs
- BuildProvidersCompiler.cs
- Membership.cs
- DispatcherEventArgs.cs
- BindingGroup.cs
- uribuilder.cs
- SrgsDocumentParser.cs
- EmptyControlCollection.cs
- ClickablePoint.cs
- CodeThrowExceptionStatement.cs
- FrameworkReadOnlyPropertyMetadata.cs
- LogFlushAsyncResult.cs
- Facet.cs
- FixedPageStructure.cs
- SHA384CryptoServiceProvider.cs
- ActionNotSupportedException.cs
- CustomWebEventKey.cs
- TreeNodeEventArgs.cs
- CookieParameter.cs
- SecurityCriticalDataForSet.cs
- WebPartMinimizeVerb.cs
- SuppressMessageAttribute.cs
- SqlRowUpdatedEvent.cs
- ServiceModelReg.cs