Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Castle对象作为Resolve中的参数发送_C#_Castle Windsor - Fatal编程技术网

C# 将Castle对象作为Resolve中的参数发送

C# 将Castle对象作为Resolve中的参数发送,c#,castle-windsor,C#,Castle Windsor,我有一个采用以下参数的类生成器: public FolderAndFileManagment(IWindsorContainer container) { var config = container.Resolve<IEcommerceConfiguration>(); ReadFolderLocation = config.ReadFolderLocation; DropFolderLocation = config.DropFolderLocation

我有一个采用以下参数的类生成器:

public FolderAndFileManagment(IWindsorContainer container)
{
    var config = container.Resolve<IEcommerceConfiguration>();

    ReadFolderLocation = config.ReadFolderLocation;
    DropFolderLocation = config.DropFolderLocation;
    directoryRepository = container.Resolve<IDirectoryRepository>();

}
公共文件夹和文件管理(IWindsorContainer)
{
var config=container.Resolve();
ReadFolderLocation=config.ReadFolderLocation;
DropFolderLocation=config.DropFolderLocation;
directoryRepository=container.Resolve();
}
组件的注册如下所示:

WindsorContainer.Register(Component.For<IFolderAndFileManagment>().ImplementedBy<FolderAndFileManagment>().Named("FolderAndFileManagment")
                             .Attribute("id").Eq("FolderAndFileManagment")
                             .Attribute("service").Eq(typeof(IFolderAndFileManagment).AssemblyQualifiedName)
                             .Attribute("type").Eq(typeof(FolderAndFileManagment).AssemblyQualifiedName)
                             .LifeStyle.Transient);
public static bool Initialize(IWindsorContainer container)
{
    _container = container;
    var config = _container.Resolve<IEcommerceConfiguration>();
    _fileManagment = _container.Resolve<IFolderAndFileManagment>(_container);
    return true;
}
WindsorContainer.Register(Component.For().ImplementedBy().Named(“folderandfilemanagement”)
.Attribute(“id”).Eq(“文件夹和文件管理”)
.Attribute(“service”).Eq(typeof(ifolderandfilemanagement).AssemblyQualifiedName)
.Attribute(“type”).Eq(typeof(folderandfilemanagement).AssemblyQualifiedName)
(生活方式,短暂),;
对解析器的调用如下所示:

WindsorContainer.Register(Component.For<IFolderAndFileManagment>().ImplementedBy<FolderAndFileManagment>().Named("FolderAndFileManagment")
                             .Attribute("id").Eq("FolderAndFileManagment")
                             .Attribute("service").Eq(typeof(IFolderAndFileManagment).AssemblyQualifiedName)
                             .Attribute("type").Eq(typeof(FolderAndFileManagment).AssemblyQualifiedName)
                             .LifeStyle.Transient);
public static bool Initialize(IWindsorContainer container)
{
    _container = container;
    var config = _container.Resolve<IEcommerceConfiguration>();
    _fileManagment = _container.Resolve<IFolderAndFileManagment>(_container);
    return true;
}
公共静态bool初始化(IWindsorContainer)
{
_容器=容器;
var config=_container.Resolve();
_filemanagement=\u container.Resolve(\u container);
返回true;
}
但在使用resolve函数时,出现以下错误:

缺少依赖项。 组件FolderAndFileManager对Castle.Windsor.IWindsorContainer有依赖关系,无法解析该依赖关系。 确保依赖项在容器中作为服务正确注册,或作为内联参数提供


如何修复此问题?

您正在使用此超负荷的
解决方法:

T Resolve<T>(object argumentsAsAnonymousType);
您应该像这样调用
Resolve

fileManagment = _container.Resolve<IFolderAndFileManagment>(
                    new { container = _container });
filemanagement=\u container.Resolve(
新的{container=_container});

您正在进行某种您自己的实现。你为什么不用它呢?它非常强大