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
- Polyline.cs
- TargetControlTypeAttribute.cs
- ObjectSecurity.cs
- ValueTypePropertyReference.cs
- autovalidator.cs
- PeerResolverMode.cs
- WebPartZoneCollection.cs
- ItemContainerGenerator.cs
- LinkedList.cs
- BuildProviderCollection.cs
- Point4DValueSerializer.cs
- UnionExpr.cs
- SingleStorage.cs
- WindowsListView.cs
- HierarchicalDataSourceControl.cs
- EditableTreeList.cs
- MessageSmuggler.cs
- LabelLiteral.cs
- DurableDispatcherAddressingFault.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- StickyNoteHelper.cs
- CodeExporter.cs
- HotCommands.cs
- ForeignConstraint.cs
- DataTablePropertyDescriptor.cs
- HandlerElement.cs
- ParameterCollection.cs
- SignedInfo.cs
- FlowLayoutPanel.cs
- MediaTimeline.cs
- WorkflowRuntimeService.cs
- Utils.cs
- XmlQualifiedName.cs
- XsltArgumentList.cs
- Parameter.cs
- FreezableOperations.cs
- CheckBox.cs
- WasNotInstalledException.cs
- BitConverter.cs
- TaskFileService.cs
- UpdatePanelTrigger.cs
- ClassValidator.cs
- SoundPlayer.cs
- IsolatedStorageFile.cs
- GeometryCombineModeValidation.cs
- SchemaMapping.cs
- GridViewRow.cs
- CompilerGlobalScopeAttribute.cs
- SessionIDManager.cs
- EngineSite.cs
- ProfileSettingsCollection.cs
- RelatedCurrencyManager.cs
- WorkflowValidationFailedException.cs
- WebEventCodes.cs
- newinstructionaction.cs
- AssemblySettingAttributes.cs
- HtmlWindowCollection.cs
- TypeBuilder.cs
- safex509handles.cs
- AttributedMetaModel.cs
- MemoryStream.cs
- IODescriptionAttribute.cs
- LockCookie.cs
- ValidationSummary.cs
- MemberPath.cs
- AccessDataSourceDesigner.cs
- PropertyIDSet.cs
- DataControlExtensions.cs
- UInt64.cs
- DataGridRowAutomationPeer.cs
- HtmlAnchor.cs
- SecurityContextKeyIdentifierClause.cs
- MembershipValidatePasswordEventArgs.cs
- PageFunction.cs
- CodeStatementCollection.cs
- HttpHandlerAction.cs
- Serializer.cs
- DependencyProperty.cs
- Int32RectConverter.cs
- WebBrowsableAttribute.cs
- DirectoryObjectSecurity.cs
- PrintEvent.cs
- CellTreeNode.cs
- StateMachineDesignerPaint.cs
- ExternalDataExchangeService.cs
- GlobalItem.cs
- SequentialUshortCollection.cs
- CssClassPropertyAttribute.cs
- PropertySourceInfo.cs
- GreenMethods.cs
- ComponentCommands.cs
- CodeCommentStatement.cs
- Schema.cs
- Point4D.cs
- HttpCachePolicyElement.cs
- XmlSchemaSimpleTypeRestriction.cs
- FullTextLine.cs
- CompilerScopeManager.cs
- SecureUICommand.cs
- AddDataControlFieldDialog.cs