gpt4 book ai didi

asp.net-mvc-3 - 等待满足的依赖关系

转载 作者:行者123 更新时间:2023-12-01 05:09:29 25 4
gpt4 key购买 nike

我正在尝试为一些非常简单的对象抽象一些简单的任务。

在我的领域模型中,有许多不同的对象,它们基本上用作标记(分类)“程序”的方式。业务逻辑说一个程序可以根据需要拥有任意数量的这些标签,但是相同类型的标签(例如“县”)不能具有相同的名称,并且当标签与程序链接时您不能删除标签

这是基于带有 S#arp 2.0 的 MVC3 构建的。

领域模型有一个抽象基类NamedEntity : Entity它定义了 public string Name { get; set; }在其他属性中。

特定类型扩展此类以添加任何使它们独一无二的东西(如果有的话),例如主题,它是一个层次结构,因此具有额外的属性。

我想创建 INamedEntityTasks<T> where T: NamedEntity然后有一个基本版本来处理像 bool CheckForDuplicateName(string Name) 这样的例行任务这将运行访问其 INamedEntityQueries<T>反对并调用 T FindByName(string Name)

如果子类需要在删除之前添加更多规则(例如,不能删除带有子主题的主题),那么它只是覆盖基类中的虚拟方法。

结构:

  • MyProject.InfrastructureINamedEntityQueries<T>NamedEntityQueries<T>以及ITopicQueries : INamedEntityQueries<Topic>TopicQueries: NamedEntityQueries<T>, ITopicQueries
  • MyProject.Domain.Contracts.TasksINamedEntityTasks<T>ITopicTasks : INamedEntityTasks<Topic>
  • MyProject.TasksNamedEntityTasks<T>TopicTasks: NamedEntityTasks<Topic>, ITopicTasks

我的 TopicsController不会运行,因为我无法弄清楚缺少依赖项

确切的异常(exception)是

Can't create component 'MyProject.web.mvc.controllers.topicscontroller' as it has dependencies to be satisfied. MyProject.web.mvc.controllers.topicscontroller is waiting for the following dependencies:

Services: - MyProject.Infrastructure.Queries.ITopicQueries which was not registered. - MyProject.Domain.Contracts.Tasks.ITopicTasks which was registered but is also waiting for dependencies.

MyProject.Tasks.TopicTasks is waiting for the following dependencies:

Services: - MyProject.Infrastructure.Queries.INamedEntityQueries`1[[MyProject.Domain.Topic, MyProject.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] which was not registered.

我检查了 containerComponentRegistrar有一个断点,它显示 3 个可能配置错误:

"MyProject.Tasks.NamedEntityTasks`1" NamedEntityTasks`1
"MyProject.Tasks.TopicTasks" ITopicTasks / TopicTasks
"MyProject.web.mvc.controllers.topicscontroller" TopicsController`TopicsController`

如有任何帮助,我们将不胜感激。

最佳答案

你不需要IFooTasks接口(interface),只需要使用一个抽象基类,然后IFooBarTasks和IFooBazTasks将通过S#arp Architecture中的标准ComponentRegistrar注册到CaSTLe Windsor:

public abstract class Foo
{
public void Foo1();

public void Foo2();
}

public class FooBar : Foo
{
public void FooBar1();
}

public class FooBaz : Foo
{
public void FooBaz1();
}

public interface IFooTasks
{
void Foo1();

void Foo2();
}

public interface IFooBarTasks : IFooTasks
{
void FooBar1();
}

public interface IFooBazTasks : IFooTasks
{
void FooBaz1();
}

public abstract class FooTasks : IFooTasks
{
public void Foo1()
{
// Foo1 implementation
}

public void Foo2()
{
// Foo2 implementation
}
}

public class FooBarTasks : FooTasks, IFooBarTasks
{
public void FooBar1()
{
// FooBar1 implementation
}
}

public class FooBazTasks : FooTasks, IFooBazTasks
{
public void FooBaz1()
{
// FooBaz1 implementation
}
}

关于asp.net-mvc-3 - 等待满足的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6472324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com