Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Sql server 2005 StructureMap和SqlCacheDependency_Sql Server 2005_Linq To Sql_Inversion Of Control_Structuremap - Fatal编程技术网

Sql server 2005 StructureMap和SqlCacheDependency

Sql server 2005 StructureMap和SqlCacheDependency,sql-server-2005,linq-to-sql,inversion-of-control,structuremap,Sql Server 2005,Linq To Sql,Inversion Of Control,Structuremap,我正试图通过StructureMap IoC启用SqlCacheDependency,我正在使用LinqToSql我已经完成了处理Linq缓存的代码,但不太确定如何设置SqlCacheDependency,因为它需要将其放在global.asa文件中 void Application_Start(object sender, EventArgs e) { string connectionString = WebConfigurationManager. Connect

我正试图通过StructureMap IoC启用SqlCacheDependency,我正在使用LinqToSql我已经完成了处理Linq缓存的代码,但不太确定如何设置SqlCacheDependency,因为它需要将其放在global.asa文件中

void Application_Start(object sender, EventArgs e) 
{
    string connectionString = WebConfigurationManager.
        ConnectionStrings["Catalog"].ConnectionString;
    SqlDependency.Start(connectionString);
}
但是,我的存储库不使用global.asa,因为它只是一个库(.dll),而不是一个web应用程序


有什么办法吗?也许可以将应用程序启动方法中的内容放入我的存储库的构造函数中?

将代码移动到构造函数中应该可以

我经常在需要显式初始化的任何对象上放置一个static Initialize()方法。如果我的代码是供外部使用的,那么如果在使用Initialize方法之前调用了一个方法,我也会抛出我自己的UninitializedException


因此,我的Global.asax往往包含几个blah.Initialize()调用。

显然,将其添加到构造函数中不起作用…我得到一个无效的对象引用异常。。。我正在考虑放弃IoC/结构图模式。。。回到把DAL放回主项目中去。。。使用StructureMap,我并没有得到任何东西。总之,使用StructureMap和IoC,你可以获得很多。对我来说,最大的收获是模仿我的IBATIS.NET映射程序,这样我就可以对我们的服务层和域类进行单元测试。我强烈建议您使用IoC使单元测试更容易。