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
- XpsResourcePolicy.cs
- GridViewSelectEventArgs.cs
- RadioButton.cs
- PrintController.cs
- ClientRoleProvider.cs
- FilterableData.cs
- ConnectionsZone.cs
- SoapInteropTypes.cs
- Rect3D.cs
- QuaternionKeyFrameCollection.cs
- SubpageParagraph.cs
- ActivityDesignerAccessibleObject.cs
- EventProvider.cs
- FrameworkContentElement.cs
- WebPartEditorOkVerb.cs
- CodeDelegateCreateExpression.cs
- ObjectStateEntryDbDataRecord.cs
- WindowsSlider.cs
- WebPartPersonalization.cs
- SqlUserDefinedTypeAttribute.cs
- BaseAppDomainProtocolHandler.cs
- IdentityHolder.cs
- ByteStack.cs
- BasicHttpMessageSecurity.cs
- FormsAuthenticationUserCollection.cs
- DataRecordInternal.cs
- ListBox.cs
- EntityContainerAssociationSetEnd.cs
- TraceHandler.cs
- AnimationClock.cs
- TraceLevelStore.cs
- ImageFormatConverter.cs
- HotSpotCollection.cs
- DispatcherSynchronizationContext.cs
- InertiaTranslationBehavior.cs
- WindowsScroll.cs
- CodeComment.cs
- BindingValueChangedEventArgs.cs
- HttpRuntimeSection.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- HtmlEmptyTagControlBuilder.cs
- figurelengthconverter.cs
- FillBehavior.cs
- TouchesOverProperty.cs
- LOSFormatter.cs
- SchemaInfo.cs
- UInt16Converter.cs
- ModelPropertyImpl.cs
- CharacterHit.cs
- Pkcs9Attribute.cs
- Stacktrace.cs
- NavigationWindow.cs
- Calendar.cs
- ItemChangedEventArgs.cs
- ButtonFieldBase.cs
- TablePatternIdentifiers.cs
- NetNamedPipeSecurityElement.cs
- DiagnosticsConfigurationHandler.cs
- FastPropertyAccessor.cs
- COM2ColorConverter.cs
- Parser.cs
- WebPartMinimizeVerb.cs
- WorkflowRuntime.cs
- XmlRawWriter.cs
- ConfigurationConverterBase.cs
- CharEnumerator.cs
- SqlConnectionPoolProviderInfo.cs
- WebPartConnectVerb.cs
- WindowsRebar.cs
- PointLight.cs
- TextRunTypographyProperties.cs
- CacheForPrimitiveTypes.cs
- DaylightTime.cs
- CookieParameter.cs
- FileEnumerator.cs
- GuidelineSet.cs
- DiscoveryMessageSequenceGenerator.cs
- EventsTab.cs
- HierarchicalDataTemplate.cs
- SoapFormatExtensions.cs
- ImageAnimator.cs
- EndpointDesigner.cs
- ProviderConnectionPoint.cs
- LineVisual.cs
- CounterCreationData.cs
- SystemSounds.cs
- MessageEncodingBindingElementImporter.cs
- MarkedHighlightComponent.cs
- LongValidatorAttribute.cs
- StringReader.cs
- Filter.cs
- TextShapeableCharacters.cs
- RowUpdatedEventArgs.cs
- baseshape.cs
- DBConcurrencyException.cs
- OracleConnection.cs
- BrowserCapabilitiesCodeGenerator.cs
- SamlAuthenticationClaimResource.cs
- ValidationRuleCollection.cs
- SqlProviderUtilities.cs