将隔离的 dll 加载到现有的 Appdomain 并自动执行事件
Posted
技术标签:
【中文标题】将隔离的 dll 加载到现有的 Appdomain 并自动执行事件【英文标题】:Loading an Isolated dll into existing Appdomain and autoexecuting events 【发布时间】:2010-05-05 11:07:22 【问题描述】:我有一个正在运行三个项目的解决方案。我的项目之一是与其他两个类隔离的类库。现在我要做的是将它加载到现有的 appdomain 中,并在同一域中其他程序集发生的某些事件上自动执行其方法。
里面有一个事件,我想执行那个事件
有可能吗?我没有办法自动执行。谷歌搜索时我发现了 AppDomain.CreateInstance () 但无法充分利用它。
或
捕获 APPDOMAIN 中发生的事件的方法。由于我在域中加载了我的 dll,所以如何捕获域内发生的事件。
【问题讨论】:
【参考方案1】:这相当简单,这应该可以帮助您: http://msdn.microsoft.com/en-us/library/ms173139(VS.80).aspx
基本上你需要创建一个继承自 MarshalByRefObject 的对象,然后将它的一个实例传递给父 Appdomain。现在,您的 appdomain 中运行了一个对象,您可以对其进行操作,无论是附加或引发事件、调用方法等等。
【讨论】:
以上是关于将隔离的 dll 加载到现有的 Appdomain 并自动执行事件的主要内容,如果未能解决你的问题,请参考以下文章
使用 AppDomain 将 DLL 作为嵌入式资源文件加载