我有一个静态类,我需要向其中注入一些实例。静态类可以有一个静态构造函数,但它必须是无参数的。那么,我应该如何向其中注入一些东西呢?
我不想创建一个单例。我希望有一个静态类,它的方法之一对应该注入的实例进行操作。下面是我需要的那种东西的例子:
public static class AuthenticationHelper
{
// Fields.
private static object _lock = new object();
private static readonly UserBusiness _userBusiness; // <-- this field needs to be injected.
// Public properties.
public static User CurrentUser
{
get
{
if (IsAuthenticated)
{
User user = (User)Context.Session[SessionKeys.CURRENT_USER];
if (user == null)
{
lock (_lock)
{
if (user == null)
{
user = _userBusiness.Find(CurrentUserId);
Context.Session[SessionKeys.CURRENT_USER] = user;
}
}
}
return user;
}
return null;
}
}
public static int CurrentUserId { get; /* implementation omitted for brevity */ }
public static bool IsAuthenticated { get; /* implementation omitted for brevity */ }
}
背景信息:这是一个 MVC4 应用程序,所以我使用的是 ninject.mvc3 插件。
PS.:我见过一些关于 Ninject 和静态方法的问题,但似乎没有一个能解决这样的问题。