跨多个命名空间和部分类复制代码

时间:2011-10-04 21:56:25

标签: c# namespaces partial-classes code-duplication linq-to-xsd

我正在使用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的分部类吗?

0 个答案:

没有答案