在控制台应用程序中处理来自不同项目的依赖项

Handling a dependancy from different project in a console application

我的解决方案中有以下项目结构:

Project.Repository(Class 图书馆)

Project.Core(Class 图书馆)

Project.Web(MVC5 网络前端)

Project.Scheduler(控制台应用程序)

我正在使用 Unity 来处理我的 DI。

我的问题

我有一个位于核心层的方法,此方法依赖于 IProcessDataService 接口,该接口正在我的 Unity 配置中处理。

    //Service            
    container.RegisterType<IProcessDataService, ProcessDataService>(new PerRequestLifetimeManager());

我最近创建了我的控制台应用程序项目,该项目基本上将调用上述方法,并将 运行 按 windows 计划进行。

考虑到我对我的核心接口有依赖性,我该如何从我的控制台应用程序的静态 Main 方法访问这个方法?

public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Begin Automation Process");

            //Run method from Core layer which has a dependency on IProcessDataService

        }
    }

您的控制台应用程序的主要方法是您的 composition root,您应该在其中进行所有连接。

然后你可以从容器中解析你的对象并调用它的方法。