0
我有我經常使用的方法,以這樣的依賴注入泛型類
public Result<User> ValidateUser(string email, string password)
返回結果有ILoggingService
接口Result
類日誌服務注入,但我沒有找到一個方法一般Result<T>
通用類注入實際的實施。
我試着執行下面的代碼,但是TestLoggingService
intance沒有注入到LoggingService
屬性中。它總是返回null。任何想法如何解決它?
using (var kernel = new StandardKernel())
{
kernel.Bind<ILoggingService>().To<TestLoggingService>();
var resultClass = new ResultClass();
var exception = new Exception("Test exception");
var testResult = new Result<ResultClass>(exception, "Testing exception", true);
}
public class Result<T>
{
[Inject]
public ILoggingService LoggingService{ private get; set; } //Always get null
protected T result = default(T);
//Code skipped
private void WriteToLog(string messageToLog, object resultToLog, Exception exceptionToLog)
{
LoggingService.Log(....); //Exception here, reference is null
}
可ResolutionExtensions.Get幫助我在這種情況下?我在任何地方都找不到有關ResolutionExtensions中的方法的說明。 – Tomas
+1 @Tomas閱讀並相信答案 - Remo在他的建議中是正確的。你引用的方法最好被認爲是相當於'Kernel.Get()' –