我正在使用LinqToXSD根据客户端的XSD生成文档模型(代码)。由于这些XSD在每次生成文档模型时都共享通用结构,因此某些对象会被复制。为了防止编译问题,我将每个文档模型放在它自己的命名空间中。这很有效。
但是现在我想对这些公共部分类的对象进行一些自定义验证。所以我使用单个IValidate
方法定义了Validate()
接口。现在我在一个以上的对象模型中生成了一些低级对象,但每个对象都在不同的命名空间中。
namespace1
{
public partial class foo : XTypedElement
{........}
}
namespace2
{
public partial class foo : XTypedElement
{........}
}
现在我想编写一个部分类文件,在我所有的foo类中添加IValidate
接口和Validate()
方法。但是,当然这不起作用,因为它们实际上是不同的对象。由于生成的代码和用于生成代码的XSD库,我有很多这些。
如果我可以隐藏内部(请阅读上面的'......),这将有效。我在不同的命名空间中有很多foo(我有foo1到foo100,每个都有相同的问题)。我需要复制代码,我知道这是禁止的,我不想这样做。但是,如果我这样做,我至少不想保留相同代码的这么多副本。
我相信这可以用动力来完成,但我宁愿不必去那里。
任何人都可以建议其他方式来编写这些验证方法,而不必手动复制到每个namespace.class的分部类吗?