Structuremap-具有自己不同参数的多个构造函数

问题描述

下面是我的代码

我有一个Factory返回了IDataTrasformer

public interface IDataTransformerFactory
{
    IDataTransformer Create();
}
public class DataTransformerFactory:IDataTransformerFactory
{
    private readOnly IExtendedProvider _extendedProvider;
    private readOnly IDataExportProvider _dataExport;

    public DataTransformerFactory(IExtendedProvider exProvider,IDataExportProvider dataExport)
    {
        //assigned each one
    }

    public IDataTransformer Resolve()
    {
        return new DataTransformer(_configProvider,_datalocater,_dataExtender);
    }
}

public class DataTransformer:IDataTransformer
{
    public DataTransformerFactory(IExtendedProvider exProvider,IDataExportProvider dataExport)
    {
        //assigned each one
    }
}

一个返回IDataProvider的“ Facotry”


public interface IDataProviderFactory
{
    IDataProvider Get();
}

public class DataProviderFactory:IDataProviderFactory
{
    private readOnly ILocationProvider _locationProvider;
    private readOnly IReportProvider _reportProvider;

    public DataProviderFactory(ILocationProvider locationProvider,IReportProvider reportProvider)
    {
        //assigned each one
    }

    public IDataProvider Resolve()
    {
        return new DataProvider(locationProvider,reportProvider);
    }
}

public class DataProvider:IDataProvider
{
    //class members location and report providers
    public DataProvider(ILocationProvider locationProvider,IReportProvider reportProvider)
    {
        //assigned each one
    }
    //stuff related to this class

}

以上每个类都已命名为“ Factory”,并且正在返回自己的类型。 每个返回类型都不同。所以我以为我会做一个如下的DataManagerFactory

public class DataManagerFactory : IDataManagerFactory
{
    private readOnly IExtendedProvider _extendedProvider;
    private readOnly IDataExportProvider _dataExport;

    public DataManagerFactory(IExtendedProvider extendedProvider,IDataExportProvider dataExportProvider)
    {
        //assigned each one
    }

    public IDataTransformer CreateDataTransformer()
    {
        return new AbsoluteDataTransformer(_configProvider,_dataExtender);
    }

    //if i implement the other interface method,how will i resolve depedency? 
}

public interface IDataManagerFactory 
{
     IDataTransformer CreateDataTransformer();
     IDataProvider CreateDataProvider();
}

现在到这里为止都很好,但是我必须实现CreateDataProvider()(返回IDataProvider())并必须以某种方式解决它。我正在使用StrucutreMap,但我不知道该如何解决

每个这样的界面都可以像这样使用Structuremap解析 For<IExtendedProvider>().Use<ExtendedProvider>();

我不确定结构是否正确?我必须改变结构吗?如果是这样,正确的方法是什么?我有点卡住...任何帮助将不胜感激

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)