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
- TextRangeAdaptor.cs
- CodeAttributeDeclaration.cs
- listitem.cs
- JpegBitmapEncoder.cs
- RadialGradientBrush.cs
- ResolveNameEventArgs.cs
- WindowsRichEdit.cs
- IntSecurity.cs
- CodeTypeParameterCollection.cs
- OleDbFactory.cs
- ApplicationProxyInternal.cs
- XsltContext.cs
- Selection.cs
- RepeatButtonAutomationPeer.cs
- RepeaterCommandEventArgs.cs
- RootBrowserWindow.cs
- Drawing.cs
- LoadItemsEventArgs.cs
- ListViewDeletedEventArgs.cs
- TimeSpanConverter.cs
- StyleConverter.cs
- TraceListener.cs
- XmlQuerySequence.cs
- InvalidComObjectException.cs
- SqlCacheDependencyDatabase.cs
- DataBindingExpressionBuilder.cs
- ipaddressinformationcollection.cs
- TraceUtility.cs
- ForEachAction.cs
- SmtpFailedRecipientsException.cs
- GridViewColumnHeader.cs
- HandleExceptionArgs.cs
- StorageMappingFragment.cs
- IPPacketInformation.cs
- BrowserDefinition.cs
- CacheRequest.cs
- HeaderedContentControl.cs
- FixedSOMTableCell.cs
- CancellableEnumerable.cs
- BinHexDecoder.cs
- X509CertificateStore.cs
- DataSourceXmlSubItemAttribute.cs
- TrackBar.cs
- ZipFileInfoCollection.cs
- AnimationClock.cs
- IssuanceLicense.cs
- DesignTimeValidationFeature.cs
- DebugView.cs
- ButtonBaseAutomationPeer.cs
- SecurityTokenProvider.cs
- Int16KeyFrameCollection.cs
- ColorTypeConverter.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- FacetEnabledSchemaElement.cs
- ModelService.cs
- DesignerEditorPartChrome.cs
- GrowingArray.cs
- InternalCache.cs
- MetadataProperty.cs
- RuleValidation.cs
- _NegoStream.cs
- LinqDataSourceStatusEventArgs.cs
- PassportAuthenticationModule.cs
- MobileControlPersister.cs
- DiagnosticTraceSource.cs
- UnsafeNativeMethods.cs
- XmlChildNodes.cs
- DebugHandleTracker.cs
- FacetValueContainer.cs
- SpellCheck.cs
- QueryResults.cs
- AsyncSerializedWorker.cs
- DeleteBookmarkScope.cs
- DnsCache.cs
- CodeTypeDeclaration.cs
- EdmProperty.cs
- TextSegment.cs
- ColumnWidthChangedEvent.cs
- TdsParameterSetter.cs
- IPHostEntry.cs
- ProxyWebPartConnectionCollection.cs
- SplineQuaternionKeyFrame.cs
- ProfileGroupSettingsCollection.cs
- SymbolPair.cs
- cryptoapiTransform.cs
- ProxyAttribute.cs
- DetailsViewPagerRow.cs
- SafeCryptHandles.cs
- StringValidatorAttribute.cs
- ReferenceConverter.cs
- ValueCollectionParameterReader.cs
- TagMapInfo.cs
- MemoryRecordBuffer.cs
- TransactionContextManager.cs
- ComPersistableTypeElement.cs
- FilterableAttribute.cs
- HtmlInputReset.cs
- CreateUserWizard.cs
- ContactManager.cs
- FactoryId.cs