正确的方法将Autofac与Factory Pattern一起使用?

时间:2018-07-20 14:49:39

标签: c# winforms autofac factory-pattern

在Winforms项目中,我已经设置了Autofac和Factory Pattern,并且看起来工作正常。但是,我仍然不确定以下是否是最佳做法。

工厂类别为:

public static class Client
{
    public static readonly IRequestFactory RequestFactory = new RequestFactory();
}

public class Configuration
{
    public IContainer Container { get; private set; }

    public Configuration()
    {
        var builder = new ContainerBuilder();
        builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())
            .Where(t => t.Name.EndsWith("Request"))
            .AsImplementedInterfaces()
            .InstancePerLifetimeScope();

        Container = builder.Build();
    }
}

public class RequestFactory : IRequestFactory, IDisposable
{
    private ILifetimeScope scope;

    public RequestFactory()
    {
        scope = Client.Configuration.Container.BeginLifetimeScope();
    }

    public T Get<T>()
    {
        return scope.Resolve<T>();
    }

    public void Dispose()
    {
        if (scope != null)
        {
            scope.Dispose();
        }
    }
}

然后,单独程序集中的类将IRequestFactory作为ctor参数。

以上是用Autofac实现因子模式的正确方法还是有更好的方法?

0 个答案:

没有答案