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
- Object.cs
- ConnectionStringSettings.cs
- RangeValidator.cs
- ConnectionProviderAttribute.cs
- ColorContextHelper.cs
- NameHandler.cs
- DbModificationClause.cs
- ObjectListShowCommandsEventArgs.cs
- UnmanagedMemoryAccessor.cs
- AspNetHostingPermission.cs
- FileNameEditor.cs
- CodeIterationStatement.cs
- ActionFrame.cs
- GuidTagList.cs
- MetadataElement.cs
- ButtonChrome.cs
- InternalException.cs
- DbConnectionFactory.cs
- EventPrivateKey.cs
- SyntaxCheck.cs
- DotAtomReader.cs
- RawStylusSystemGestureInputReport.cs
- PersonalizationStateQuery.cs
- WebConfigurationHostFileChange.cs
- MasterPageParser.cs
- WebPartVerbCollection.cs
- XPathDocumentNavigator.cs
- XmlTextWriter.cs
- DbConnectionPool.cs
- connectionpool.cs
- TdsEnums.cs
- ValidatorCompatibilityHelper.cs
- ControlCachePolicy.cs
- Vector3DConverter.cs
- ResourcesChangeInfo.cs
- LinqDataSourceInsertEventArgs.cs
- SqlParameter.cs
- CompoundFileIOPermission.cs
- IndexOutOfRangeException.cs
- ScrollItemPattern.cs
- SQLBytes.cs
- FontInfo.cs
- HttpHandler.cs
- ApplicationId.cs
- MarkupObject.cs
- FieldNameLookup.cs
- SearchForVirtualItemEventArgs.cs
- HttpCookie.cs
- RequestUriProcessor.cs
- IncrementalReadDecoders.cs
- XPathScanner.cs
- XPathSelectionIterator.cs
- ColumnMapProcessor.cs
- DataColumnMapping.cs
- MenuItemStyleCollection.cs
- BitmapMetadataBlob.cs
- DefaultAssemblyResolver.cs
- TextRangeBase.cs
- SaveFileDialog.cs
- DesignerSerializationOptionsAttribute.cs
- HtmlUtf8RawTextWriter.cs
- EventEntry.cs
- DataBinding.cs
- PrimitiveType.cs
- CommandDevice.cs
- PtsPage.cs
- SqlInternalConnectionTds.cs
- DbMetaDataCollectionNames.cs
- ComponentChangingEvent.cs
- EntitySqlQueryCacheEntry.cs
- MulticastIPAddressInformationCollection.cs
- PowerModeChangedEventArgs.cs
- ITreeGenerator.cs
- CommandSet.cs
- ExpanderAutomationPeer.cs
- ToggleButtonAutomationPeer.cs
- UpdatePanelControlTrigger.cs
- TableAdapterManagerNameHandler.cs
- ADMembershipUser.cs
- RemotingSurrogateSelector.cs
- XmlBaseWriter.cs
- SBCSCodePageEncoding.cs
- sitestring.cs
- ImageListStreamer.cs
- ByteStreamGeometryContext.cs
- Constant.cs
- DataStorage.cs
- SqlDependency.cs
- WindowsContainer.cs
- OutputCacheSettings.cs
- entityreference_tresulttype.cs
- DataSourceDescriptorCollection.cs
- WorkflowShape.cs
- MobileControlsSectionHandler.cs
- SqlDataRecord.cs
- Char.cs
- MdbDataFileEditor.cs
- QilScopedVisitor.cs
- TextSearch.cs
- Selector.cs