.net 是否在不引用其宿主程序集的情况下引发异常?

.net 是否在不引用其宿主程序集的情况下引发异常?,.net,exception,reference,.net,Exception,Reference,我有一个程序集,它是系统a的插件(它实现了IASystemTempugin接口)。系统A是系统B的一个组件。我想从插件到系统B级抛出一个异常。不幸的是,系统A和系统B都处理所有已知的异常并重新抛出所有未知的异常,所以我必须抛出B.SystemBeException实例 作为一个系统a客户机,我没有对B类的引用,如果我没有,那就更好了(除了系统类之外,所有引用都应该在a级注册,这意味着要注册30+B程序集)。在本例中,我是否能够实例化看起来非常简单的B.SystemBeException类 任何黑

我有一个程序集,它是系统a的插件(它实现了IASystemTempugin接口)。系统A是系统B的一个组件。我想从插件到系统B级抛出一个异常。不幸的是,系统A和系统B都处理所有已知的异常并重新抛出所有未知的异常,所以我必须抛出B.SystemBeException实例

作为一个系统a客户机,我没有对B类的引用,如果我没有,那就更好了(除了系统类之外,所有引用都应该在a级注册,这意味着要注册30+B程序集)。在本例中,我是否能够实例化看起来非常简单的B.SystemBeException类

任何黑客方法都将受到赞赏


关于,

我猜您可能可以通过反射找到该类并创建其实例。但是,你确定要这样做吗?我假设系统接口是为了容纳这些内容而构建的

在任何情况下,我假设您可以访问该类,因为您正在被另一个程序集加载。请参阅以下内容以了解如何启动:


如果您需要更多详细信息,请告诉我。

您排除了必须做的事情。几乎不需要参考30个组件,一个就足够了。声明异常类型的程序集。为了使其工作,我必须将我的程序集注册为system A的“plugin”。如果“plugin”包含对非系统程序集的引用,则所有程序集也应注册为“plugin”。否则,Register()方法返回false。递归地,我必须为我引用的程序集注册所有引用的程序集,等等,所以它超过30个,这对我来说太多了,无法实例化一个小异常。这应该是可行的,尽管我必须找到程序集才能加载它。我考虑了一些类似COM中的GUI的东西:实现我自己的类,使系统B认为异常是他们自己的。