Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为类库项目指定入口点_C#_.net - Fatal编程技术网

C# 为类库项目指定入口点

C# 为类库项目指定入口点,c#,.net,C#,.net,是否有一种方法可以指定和入口点来执行类库项目中的某些代码,即在IOC容器中注册某些组件。 我确实意识到我可以使用PreApplicationStartMethodAttribute,但它是system.web命名空间的一部分,因此它只适用于ASP.NET应用程序我需要能够与测试仪控制台应用程序以及MVC应用程序一起工作的东西您可以使用静态构造函数,如果您的代码实际访问了类的至少一个静态字段,则可以保证运行。但这样做是一种代码味道,因为这正是IoC应该消除的。它不应该由你的类库决定最终在IoC容器

是否有一种方法可以指定和入口点来执行类库项目中的某些代码,即在IOC容器中注册某些组件。
我确实意识到我可以使用PreApplicationStartMethodAttribute,但它是system.web命名空间的一部分,因此它只适用于ASP.NET应用程序我需要能够与测试仪控制台应用程序以及MVC应用程序一起工作的东西

您可以使用静态构造函数,如果您的代码实际访问了类的至少一个静态字段,则可以保证运行。但这样做是一种代码味道,因为这正是IoC应该消除的。它不应该由你的类库决定最终在IoC容器中的内容。您可以提供一个方便的方法,但是您的主可执行文件仍然应该调用它。一些容器框架还允许配置文件或属性。如果你真的想让你的库“插入”,那么这可能就是你想要的:一个插件框架。如果你真的很绝望,那么你可以使用一个模块初始值设定项。C#中不支持,但C++/CLI、IL或类似Fody的库提供了一个。你可以提供一个方便的方法,但是你的主可执行文件仍然应该调用“我强烈支持这个解决方案。你可以使用一个静态构造函数,如果你的代码实际访问了类的至少一个静态字段,它就可以运行。”。但这样做是一种代码味道,因为这正是IoC应该消除的。它不应该由你的类库决定最终在IoC容器中的内容。您可以提供一个方便的方法,但是您的主可执行文件仍然应该调用它。一些容器框架还允许配置文件或属性。如果你真的想让你的库“插入”,那么这可能就是你想要的:一个插件框架。如果你真的很绝望,那么你可以使用一个模块初始值设定项。C#中不支持,但C++/CLI、IL或类似Fody的库提供了一个。您必须非常绝望,几乎没有理由对单元测试感到绝望。”您可以提供一种方便的方法,但您的主要可执行文件仍然应该称之为“我强烈支持此解决方案”。