我有這個服務項目,用於一些後端工作。我試圖創建一個監視器,顯然將監視服務,並確保他們正在按照他們的工作。我爲監視器使用了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