我有这个服务项目,用于一些后端工作。我试图创建一个监视器,显然将监视服务,并确保他们正在按照他们的工作。我为监视器使用了Web窗体,而Ninject似乎根本不想注入属性(对象返回为空)。所以,这里的故障:Ninject根本不注入属性?
在该活动正用于一个方法作为datacontract模型,这里是该代码:
[DataContract]
public class UserSummary
{
public UserSummary();
public UserSummary(User user);
[DataMember]
public AccountStatusValue AccountStatus { get; set; }
[DataMember]
public AudienceValue Audience { get; set; }
[DataMember]
public string EmailAddress { get; set; }
[DataMember]
public int ID { get; set; }
[DataMember]
public Guid Identifier { get; set; }
[DataMember]
public Name Name { get; set; }
[DataMember]
public string Username { get; set; }
}
所以有一些属性的存在填补。下面是活动正用于调用这个接口方法:
UserSummary GetUserSummaryInternal(string username);
我确实有建立正常(一切工作)的其他部分,只是想获得一个监视器为它去。现在,这里是背后的Web表单代码:
partial class ServicesMonitor : System.Web.UI.MasterPage
{
[Inject]
IUserManagementService Service { get; set; }
public ServicesMonitor(IUserManagementService service)
{
this.Service = service;
}
public ServicesMonitor()
{
}
protected void Page_Load(object sender, EventArgs e)
{
UserSummary summary = Service.GetUserSummaryInternal("testing993");
string message = "Up";
Response.Write(message);
Response.End();
return;
}
}
,因为我无法获得Ninject工作为它有没有代码更后面的代码现在。我尝试了各种不同的方式,使用[Inject]标签,不使用它,有构造函数等等。我也有我在模块中使用的接口的正确绑定,就像我之前说过的,适用于正在使用这项服务库中的应用很好,我还添加了一个结合在App_Start文件夹中的NinjectWebCommon文件,但仍无济于事:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ServiceLibrary.Service.IUserManagementService>().To<ServiceLibrary.Service.UserManagementService>();
kernel.Bind<ServiceLibrary.Service.IIntegrationService>().To<ServiceLibrary.Service.IntegrationService>();
kernel.Load(new List<string> { "ServiceLibrary.dll" });
}
。 Ninject如何不能在服务库项目中的单个aspx web窗体上工作?我很困惑...
您是否已将'Ninject.Web'包添加到您的Web项目中? – 2014-10-03 17:14:35
是的。我在这个解决方案的其他几个地方使用ninject,并且在其他地方工作正常,仅仅因为某些原因它不想在webform中注入属性... – Skrubb 2014-10-03 17:24:05