我想在C#应用程序中获取有关Assembly的信息。我使用以下内容:获得程序集上的信息
Assembly.GetCallingAssembly();
这可以完美地返回调用程序集的信息。
我想与其他应用程序共享此功能,所以我将它包含在我的类库中的一个类中。
我在多个应用程序中引用此类库。当我从我的应用程序调用此方法时,它将返回有关类库而不是应用程序的信息。有没有一种方法可以改变我的上面的代码来返回Web应用程序程序集上的信息,同时仍然将代码包含在类库中?
我想在C#应用程序中获取有关Assembly的信息。我使用以下内容:获得程序集上的信息
Assembly.GetCallingAssembly();
这可以完美地返回调用程序集的信息。
我想与其他应用程序共享此功能,所以我将它包含在我的类库中的一个类中。
我在多个应用程序中引用此类库。当我从我的应用程序调用此方法时,它将返回有关类库而不是应用程序的信息。有没有一种方法可以改变我的上面的代码来返回Web应用程序程序集上的信息,同时仍然将代码包含在类库中?
而不是让类库变得聪明,为什么你没有调用者通过一个Assembly
作为该方法的参数?所以当你从某个应用程序中调用方法时,你会通过Assembly.GetExecutingAssembly()
,类库中的方法现在可以获取实际调用者的程序集。
我不确定你在反射之上提供了什么,但也许你正在抽象一个不需要抽象的工具。思考已经处理了这个,所以为什么不让它做它的工作?
但是,如果这个API给你一些有用的信息(比如插入到你的数据库等),那么你的方法可能是有道理的。但我仍然建议您重构它:
Assembly
对象作为参数,而不是试图确定当前的组件。这样可以提供更大的灵活性,以便在您想出一些代码时想要获得一堆程序集中的数据,并且仍然允许您传递当前程序集。 (注意:达林已经提出了这一点)
你可能会问一个问题太低。你想达到什么目的? –