我有 Validator.sln、A.sln、B.sln、C.sln。
A、B 和 C 是具有不同主要功能的大型项目。我想使用他们的每一个逻辑来验证一段数据。
因此,在 Validator.sln 中,我有一个源文件:
public interface IValidator
{
bool Validate(int myData);
}
我想在A、B、C中实现这个接口(interface)即
public Validator : IValidator
{
bool Validate(int myData)
{
bool dataValidates = true;
// Call a bunch of complicated logic
return dataValidates;
}
}
(这不会编译,因为 IValidator 在此上下文中未定义。)
我可以创建一个从 A 到 Validator 的程序集引用,它们在大多数情况下是独立的程序。 这是一个糟糕的解决方案吗?
编辑:
我还可以将 AValidator 放在 Validator.sln 中,然后在运行时从 A 动态链接我想要的程序集。但这是否违背了界面的目的?
最佳答案
不,这不是一个糟糕的解决方案。
事实上,将公共(public)逻辑移动到它自己的程序集中更可取。这节省了代码重复和维护成本。
您还应该考虑将其他三个项目中通用的逻辑也移到新程序集中。
我们的设置与您所描述的类似。我们有一个在 3 个小应用程序之间共享的通用程序集,它也有业务验证(政府)规则。更新所有三个应用程序的规则非常简单,因为它只在一个地方。
关于c# - 以这种方式在项目之间创建引用是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19576885/