Tag: spring.net

我怎样才能将spring.net注入方法?

我在spring.net论坛上发布了以下内容,但也希望我可以在这里获得一些有价值的观点: 我正在寻找一些关于如何达到以下要求的建议。 首先是一些背景 – 我使用Spring.NET来实现IOC depdenecny注入我的asp.net c#多层Web应用程序。 通过spring.net xml配置文件实现注入,通过开发针对接口并在需要的接口实现类中注入来实现我的所有开发。 这对我来说都很好。 我相信,我的知识将是中等水平。 我已经遇到了问题并希望为它找到解决方案。 举个例子,我有一个带有几种方法的类,它们都从数据库中检索,数据被缓存一段时间。 我希望能够自由地为每个方法注入缓存的特征,例如。 它存在于缓存等的时间。因此,我不想在类中注入其所需的位置,而是希望能够将值注入到方法中。 我可以继续为每个方法创建类的属性,但这会变得混乱,或者在我的类中注入设置。 我倾向于通过弹簧注射控制每种方法。 所以任何想法如何实现这一点,因为我期望它比其他人可能遇到过。 我想出的一个可能的想法是以某种方式通过spring为每个方法注入一个属性,属性具有属性,该属性具有方法中所需的值,例如缓存持续时间等。这是一个可行的解决方案吗? 如果是这样,任何人都可以协助我配置这样的。 或者,如果任何人有任何其他想法,那将是伟大的。

在Spring.Net中向一个递归方法注入建议?

我正在尝试使用Spring.NET对AOP的支持来进行控制/面向方面编程的dependency injection/反转(对于大量的流行语感到抱歉 – 也许我会发布一个单独的问题,要求某人澄清差异:)) 。 具体来说,我希望拦截一个递归方法调用,这样每次调用该方法时,都会调用AOP通知/拦截器。 Spring.Net似乎没有拦截除第一个方法调用之外的任何东西。 我认为 Spring.Net正在为每个实例维护1个截距链,并且在第一个方法调用完成之前不再调用任何拦截器。 有没有人有任何关于获取为每个方法调用触发的拦截器(建议)的信息,包括递归调用? 我可以提供代码/示例输出,如果这有用的话。 谢谢!

无法使用spring.net在asp.net mvc3应用程序中打开数据库(sqlite)

我正在编写一个asp.net mvc3 Web应用程序。 我想使用sqlite数据库。 不幸的是,我得到一个SqliteException,说“无法打开数据库”。 春季版:1.3.2 NHibernate版本:3.2 DbProvider / ConnectionString的: 堆栈跟踪: bei System.Data.SQLite.SQLite3.Open(String strFilename, SQLiteOpenFlagsEnum flags, Int32 maxPoolSize, Boolean usePool) in c:\dev\sqlite\dotnet\System.Data.SQLite\SQLite3.cs:Zeile 239. bei System.Data.SQLite.SQLiteConnection.Open() in c:\dev\sqlite\dotnet\System.Data.SQLite\SQLiteConnection.cs:Zeile 1022. bei NHibernate.Connection.DriverConnectionProvider.GetConnection() 我甚至尝试将DataSource设置为绝对路径( C:\ temp \ database \ Employees.db3 ),但抛出相同的SqLiteException。 更新: 错误页面上显示的Stacktrace: [SQLiteException (0x80004005): Unable to open the database file] System.Data.SQLite.SQLite3.Open(String strFilename, SQLiteOpenFlagsEnum flags, Int32 maxPoolSize, Boolean […]

如果使用多个insert语句,有没有办法使用SCOPE_IDENTITY?

我将许多数据行从csv文件导入SQL Server数据库(通过Web应用程序)。 我需要为客户端返回自动生成的id值。 如果我在循环中执行此操作,性能非常差(但我可以使用SCOPE_IDENTITY()而没有任何问题)。 一个更高效的解决方案是这样的方式: INSERT INTO [MyTable] VALUES (‘1’), (‘2’), (‘3’) SELECT SCOPE_IDENTITY() 有没有办法获得所有生成的ID而不仅仅是最后生成的ID? 谢谢你的帮助! 最好的问候,托尔斯滕

.net程序集和个人配置

我的主要程序集是一个Web应用程序。 它使用spring.net框架将其他程序集加载到其执行的应用程序域中。 所以这自然意味着所有其他程序集必须从web.config获取其配置值(例如连接字符串和应用程序设置)。 有没有办法可以覆盖这个? 一些配置可以来自web.config; 其他人必须分开居住。 我应该采用什么样的方法来开发这样的.net程序集? 目标是,一旦这个应用程序进入客户端环境,并且客户端决定在遥远的未来某处添加程序集,他应该能够毫不费力地这样做,并且在不影响其他程序集的情况下更改该程序集的配置。 所以最终我必须提出一种基于框架的方法? 这种效果已经有了什么吗? 或者我该如何解决这个问题? 我面临的挑战是什么?

Workflow Foundation 4中的dependency injection/ IoC

是否可以在工作流程活动中使用DI? 如果是,怎么样? 例如,如果您有类似的活动 public sealed class MyActivity : CodeActivity { public MyClass Dependency { get; set; } protected override void Execute(CodeActivityContext context) { Dependency.DoSomething(); } } 我该如何设置Dependency ? (我正在使用Spring.Net)

通过DI配置Envers RevisionListener

为了向我们的应用程序添加审计跟踪,我们决定使用NHibernate.Envers。 为了允许特定于应用程序的修订跟踪, DefaultRevisionEntity使用特定于用户的数据进行了扩展。 public virtual void NewRevision( object revisionEntity ) { var revisionData = revisionEntity as Revision; if( revisionData != null ) { // Set additional audit data. var identity = UserAccessor.CurrentIdentity; revisionData.UserId = identity.UserId; revisionData.EmployeeId = identity.EmployeeId; revisionData.UserName = identity.Name; } } Envers决定使用RevisionListener ,具体取决于您的类使用的RevisionEntity属性: [RevisionEntity( typeof( RevisionListener ) )] 我正在使用ServiceLocator模式将我的访问器注入RevisionListener 。 目前,这是我必须使用ServiceLocator并且真正想要摆脱它的唯一地方。 是否有另一种灵活的方式将我的UserAccessor注入RevisionEntity?

反思说接口方法在实现类型中是虚拟的,当它们不是时?

我在unit testing中有以下代码 public bool TestMethodsOf() { var impl = typeof(T); var valid = true; foreach (var iface in impl.GetInterfaces().Where(i => typeof(I).IsAssignableFrom(i))) { var members = iface.GetMethods(); foreach (var member in members) { Trace.Write(“Checking if method ” + iface.Name + “.” + member.Name + ” is virtual…”); var implMember = impl.GetMethod(member.Name, member.GetParameters().Select(c => c.ParameterType).ToArray()); if (!implMember.IsVirtual) […]

如何使用Autofac与方法连接事件?

是否可以通过接口/类(通过构造函数和属性注入)将事件连接到具有Autofac的方法而不是整个对象。 我想绑定在function级别而不是类型级别。 以编程方式我希望完成以下工作(在C#中): someType.Output += someOtherType.Input; 例如,Spring.net支持以下构造来实现: Autofac能够做到这一点以及如何做到这一点? 是否可以将xml配置用于此类任务?

可能的GetObjectsOfType替换

我有这小段代码 var idObjects = Spring.Context.Support.ContextRegistry.GetContext() .GetObjectsOfType(typeof (ICustomInterfaceThatDoesSomething)); foreach (ICustomInterfaceThatDoesSomething icitds in idObjects.Values) icitds.DoSomething(); 有没有办法可以避免这种情况,让spring.net自动将单例注入我声明的属性,就像一个ICustomInterfaceThatDoesSomething数组? 我想要这样的事情的唯一原因是因为我想杀死项目的.dll依赖项,这是单一的使用点。