返回首页

一个新的问题出现了:

        

For Each key As String In assemblies.Keys

 

            Dim ad As AppDomain = AppDomainHelper.BuildChildAppDomain(AppDomain.CurrentDomain, key)

 

            Dim finder As AssemblyHelper.AssemblyResolveFinder = CType(ad.CreateInstanceAndUnwrap(GetType(AssemblyHelper.AssemblyResolveFinder).Assembly.FullName, GetType(AssemblyHelper.AssemblyResolveFinder).FullName), AssemblyHelper.AssemblyResolveFinder)

            finder.DeployPath = Assembly.GetExecutingAssembly.Location.Substring(0, Assembly.GetExecutingAssembly.Location.LastIndexOf("\"c) + 1)

            AddHandler ad.AssemblyResolve, AddressOf finder.AssemblyResolve

 

            For Each value As String In assemblies(key)

 

                Dim item As IScanner = CType(ad.CreateInstanceAndUnwrap(key, value), IScanner)

 

                ListBox1.Items.Add(item)

            Next

            _l.Add(ad)

 

        Next

发生错误IScanner的= CType运算(ad.CreateInstanceAndUnwrap(键,值),所以IScanner),因为它是不能够加载的程序集的引用,在昏暗的项目。我已创建一个程序集解决类,这样我就可以调用在同一个AppDomain中,我试图加载组装成的evenht:
{C}
我曾尝试不同的路径在_deployPath字符串。理想的外部组件都可以在自己的单个文件夹,远离任何其他组件,但我不能得到大会加载eitherway。

,bizarly我已经加载另一个类,我曾在不同的AppDomain instansiated大会,只是让我可以探测类类型(试图找到那些从IScanner的inheret)。我用这种方法唯一的问题是,我不知道我将如何能够与instansiated类型没有在我appdomain.currentdomain参考他们沟通

我希望我解释我的困境。如果没有的话让我知道,我会尽力澄清

感谢
安迪

回答

评论会员: 时间:2