以这种方式在项目之间创建引用是不好的做法吗?

Zaa*_*ier 4 c# reflection

我有Validator.sln,A.sln,B.sln,C.sln.

A,B和C是具有不同主要功能的大型项目.我想使用它们的一些逻辑来验证一段数据.

所以,在Validator.sln中,我有一个源文件:

public interface IValidator
{
    bool Validate(int myData);
}
Run Code Online (Sandbox Code Playgroud)

我想在A,B和C中实现这个接口. 也就是说,

public Validator : IValidator
{
    bool Validate(int myData)
    {
        bool dataValidates = true;

        // Call a bunch of complicated logic

        return dataValidates;
    }
}
Run Code Online (Sandbox Code Playgroud)

(这不会编译,因为在此上下文中未定义IValidator.)

我可以创建一个从A到Validator的程序集引用,它们大部分是单独的程序. 这是一个糟糕的解决方案?

编辑:

我也可以将AValidator放在Validator.sln中,然后在运行时动态链接我想要的程序集.但那种失败了接口的目的?

Sim*_*ead 6

不是它不是一个坏的解决方案.

事实上,最好将通用逻辑移入它自己的程序集中.这节省了代码重复和维护成本.

您还应该考虑将其他三个项目中常见的逻辑移动到新的程序集中.

我们的设置与您描述的类似.我们有一个共同的程序集,它在3个小应用程序之间共享,这也有业务验证(政府)规则.跨所有三个应用程序更新规则非常简单,因为它只在一个地方.