嗨統一配置錯誤很努力,它使用依賴注入模式的控制檯應用程序,我創建的界面就像在控制檯應用程序
public interface IRecurringTransactionPlanDataService : IService<RecurringTransactionPlan>
{
IQueryable<RecurringTransactionPlan> RecurringTransactionPlanData();
}
和類實現爲
public class RecurringTransactionPlanDataService : Service<RecurringTransactionPlan>, IRecurringTransactionPlanDataService
{
private readonly IRepositoryAsync<RecurringTransactionPlan> _repository;
public RecurringTransactionPlanDataService(IRepositoryAsync<RecurringTransactionPlan> repository)
: base(repository)
{
_repository = repository;
}
public IQueryable<RecurringTransactionPlan> RecurringTransactionPlanData()
{
return _repository.RecurringTransactionPlanData();
}
}
存儲庫:
public static class RecurringTransactionPlanRepository
{
public static IQueryable<RecurringTransactionPlan> RecurringTransactionPlanData(this IRepository<RecurringTransactionPlan> repository)
{
return repository.Queryable();
}
}
上面的代碼都在單獨的項目中,我在MVC中使用這個在控制檯應用程序,而使用MVC沒有錯誤從數據庫由UnityConfig.cs讀取數據,但在控制檯應用程序,我們需要手動註冊和解析接口,我已經試過了,
我的控制檯應用程序:
public class RecurringTransaction
{
public readonly IRecurringTransactionPlanDataService _recurringTransactionPlanDataService;
public RecurringTransaction()
{
var container = new UnityContainer();
container.RegisterType<IRecurringTransactionPlanDataService, RecurringTransactionPlanDataService>();
_recurringTransactionPlanDataService = container.Resolve<IRecurringTransactionPlanDataService>();
}
}
public class Program
{
public static void Main(string[] args)
{
FeePaymentTracker.UnityConfig.RegisterComponents();
RecurringTransaction rt = new RecurringTransaction();
var restult = rt.GetRecurringTransactionRecords();
}
}
我得到上述錯誤。期待您的想法來解決錯誤。
您正在使用Service Locator模式,而不是依賴注入。您需要展示如何使用Unity註冊您的類型。我的例子中甚至沒有看到「RecurringTransactionPlanDataService」類型的任何地方。 – Crowcoder
請看編輯 – Ranjith