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
- HttpListenerRequest.cs
- AspNetHostingPermission.cs
- WebPartVerbsEventArgs.cs
- Task.cs
- WrappedReader.cs
- TextChangedEventArgs.cs
- DateTimeFormat.cs
- HtmlInputSubmit.cs
- PTConverter.cs
- DataServiceEntityAttribute.cs
- TextEditorCopyPaste.cs
- KeyConverter.cs
- hwndwrapper.cs
- Annotation.cs
- WaveHeader.cs
- CacheChildrenQuery.cs
- AuthorizationContext.cs
- DataBindingList.cs
- SpellerError.cs
- ClientTargetSection.cs
- DaylightTime.cs
- SqlXml.cs
- TemplateInstanceAttribute.cs
- MemberInfoSerializationHolder.cs
- SamlAttributeStatement.cs
- SqlDataSourceFilteringEventArgs.cs
- coordinatorscratchpad.cs
- WebServiceFaultDesigner.cs
- HttpContext.cs
- XmlUrlEditor.cs
- FileRecordSequence.cs
- AddInAttribute.cs
- Drawing.cs
- PrintingPermissionAttribute.cs
- CodeTryCatchFinallyStatement.cs
- DropDownButton.cs
- MemberRelationshipService.cs
- CapabilitiesAssignment.cs
- DataViewManager.cs
- GenericUriParser.cs
- ListChangedEventArgs.cs
- GridViewUpdatedEventArgs.cs
- TextTabProperties.cs
- ListItemConverter.cs
- EmptyEnumerable.cs
- XmlArrayItemAttributes.cs
- SharedPersonalizationStateInfo.cs
- LinqDataSourceHelper.cs
- ListViewPagedDataSource.cs
- HyperLink.cs
- TokenFactoryBase.cs
- SettingsBindableAttribute.cs
- KeyToListMap.cs
- Message.cs
- ProcessManager.cs
- ToolStripItemImageRenderEventArgs.cs
- FixedFlowMap.cs
- FrameDimension.cs
- MenuScrollingVisibilityConverter.cs
- ContractMapping.cs
- safelinkcollection.cs
- ConfigurationStrings.cs
- CommandBindingCollection.cs
- SafePipeHandle.cs
- RtType.cs
- MdiWindowListStrip.cs
- ConfigXmlText.cs
- DataGridViewSelectedCellCollection.cs
- GeneralTransform2DTo3D.cs
- DetailsViewCommandEventArgs.cs
- XmlNodeList.cs
- ArrayList.cs
- RewritingSimplifier.cs
- GeometryHitTestResult.cs
- DbMetaDataCollectionNames.cs
- Task.cs
- CodeGeneratorAttribute.cs
- SystemResourceHost.cs
- VBIdentifierDesigner.xaml.cs
- PropertyTabChangedEvent.cs
- WebPartConnectVerb.cs
- CfgRule.cs
- Stack.cs
- HandlerFactoryCache.cs
- SQLResource.cs
- EntityProviderServices.cs
- XmlEventCache.cs
- BindingsCollection.cs
- EntityDataSourceWrapperCollection.cs
- TraceHandler.cs
- TextServicesPropertyRanges.cs
- EventListenerClientSide.cs
- GZipStream.cs
- ListenerHandler.cs
- XmlTextReaderImplHelpers.cs
- AllMembershipCondition.cs
- CodeLabeledStatement.cs
- WindowHideOrCloseTracker.cs
- WriteableBitmap.cs
- SqlPersistenceWorkflowInstanceDescription.cs