0

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

4

0 回答 0