在我的解决方案中,我有几个库项目。
我希望每个库项目在应用程序启动时进行一些初始化。
我知道我可以使用静态类和静态方法来完成这个任务,但是我不知道这是否是最好的解决方案。
这些库可以用于web应用程序或win应用程序。
这样做最好的方法是什么?
编辑:
示例:“传输”项目引用的“公共”项目。“公共”定义了允许注册的警报结构。在应用程序初始化中,我希望“传输”在“公共”的警报结构中注册自己的警报。
发布于 2011-07-25 18:26:59
我建议使用类似于托管扩展框架的东西,然后您可以创建一个包含Initialize方法的接口,当应用程序启动时,您将使用MEF获取所有可用的库,并调用它们的Initialize方法。这是一个更灵活的,并允许您添加和删除新的组件在未来。
发布于 2011-07-25 18:22:59
不太确定你想要达到什么目的。使用静力学,您没有一个保证的顺序,这些都是初始化。这可能不是一个要求。
另一个不同的选项是在每个库中实现一个简单的类,假设这些程序集也包含托管代码。
在应用程序的启动序列中,您可以使用反射遍历所有库,然后在每个库中找到这个简单的类,创建一个实例并调用包含初始化代码的方法。
在每个库中识别简单类有不同的方法。我的建议是让它们实现特定的接口或从特定的类派生。在这种情况下,您将有一个定义良好的接口,您的应用程序的启动序列可以使用。
使用这种方法,您还可以添加一些逻辑来强制执行执行初始化代码的特定序列。
https://stackoverflow.com/questions/6820413
复制相似问题