Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- mediaeventshelper.cs
- XmlCharType.cs
- IconHelper.cs
- CodeBlockBuilder.cs
- ClipboardData.cs
- DynamicFilter.cs
- DataGridParentRows.cs
- FamilyCollection.cs
- Table.cs
- RedirectionProxy.cs
- TaiwanLunisolarCalendar.cs
- SqlBuffer.cs
- ObjectKeyFrameCollection.cs
- PanelStyle.cs
- SignedXml.cs
- ReferentialConstraintRoleElement.cs
- JournalEntryStack.cs
- FilterRepeater.cs
- MulticastNotSupportedException.cs
- Constants.cs
- StyleHelper.cs
- EditorPart.cs
- EncryptedData.cs
- DependencyPropertyKey.cs
- GlobalizationAssembly.cs
- BufferModesCollection.cs
- PatternMatcher.cs
- HtmlPageAdapter.cs
- CommandConverter.cs
- IsolatedStoragePermission.cs
- TimeIntervalCollection.cs
- HTMLTextWriter.cs
- HttpCachePolicyElement.cs
- PriorityBindingExpression.cs
- FontUnitConverter.cs
- isolationinterop.cs
- IndependentlyAnimatedPropertyMetadata.cs
- RangeBaseAutomationPeer.cs
- RunWorkerCompletedEventArgs.cs
- IsolatedStorageFilePermission.cs
- SaveFileDialogDesigner.cs
- DynamicILGenerator.cs
- ThemeableAttribute.cs
- ProfileServiceManager.cs
- PackageProperties.cs
- XmlComplianceUtil.cs
- CoTaskMemHandle.cs
- TrackingStringDictionary.cs
- ListViewInsertedEventArgs.cs
- InstanceHandleConflictException.cs
- LoaderAllocator.cs
- XmlNodeChangedEventArgs.cs
- WorkflowHostingResponseContext.cs
- RSAPKCS1KeyExchangeFormatter.cs
- SHA256Managed.cs
- SqlDataSourceCommandEventArgs.cs
- FrameworkRichTextComposition.cs
- TemplateXamlParser.cs
- BufferBuilder.cs
- CacheMode.cs
- SafeRightsManagementEnvironmentHandle.cs
- OrderByExpression.cs
- ListItemConverter.cs
- XmlSchemaAttributeGroup.cs
- Popup.cs
- HttpGetProtocolReflector.cs
- SiteMapPath.cs
- PointConverter.cs
- GradientStop.cs
- HtmlLiteralTextAdapter.cs
- FontDialog.cs
- Transform.cs
- AnnotationAuthorChangedEventArgs.cs
- TagElement.cs
- _Rfc2616CacheValidators.cs
- XmlSchemaDocumentation.cs
- ListManagerBindingsCollection.cs
- basevalidator.cs
- ObjectStateManager.cs
- DbConnectionPool.cs
- SmiGettersStream.cs
- sqlser.cs
- OciEnlistContext.cs
- EntityDataSourceDesigner.cs
- ResourcesBuildProvider.cs
- _DomainName.cs
- XmlNullResolver.cs
- MULTI_QI.cs
- LineServices.cs
- TransformerTypeCollection.cs
- HttpValueCollection.cs
- MetadataArtifactLoaderComposite.cs
- sqlnorm.cs
- BaseDataListPage.cs
- InputDevice.cs
- EntityWrapperFactory.cs
- BehaviorDragDropEventArgs.cs
- CancellableEnumerable.cs
- UriSchemeKeyedCollection.cs
- LocalizationParserHooks.cs