Я использую LinqToXSD для генерации моделей документов (кодов) на основе клиентских XSD. Поскольку эти XSD разделяют общую структуру каждый раз, когда я генерирую модель документа, некоторые объекты дублируются. Чтобы предотвратить проблемы компиляции, я поместил каждую модель документа в свое собственное пространство имен. Это отлично сработало.
Но теперь я хочу сделать некоторую пользовательскую проверку с этими объектами, которые являются публичными частичными классами. Итак, я определил интерфейс IValidate
с помощью одного Validate()
метода. Теперь у меня есть объект низкого уровня, сгенерированный в нескольких объектных моделях, но каждая в своем пространстве имен.
namespace1
{
public partial class foo : XTypedElement
{........}
}
namespace2
{
public partial class foo : XTypedElement
{........}
}
Теперь я хочу написать отдельный файл частичного класса для добавления интерфейса IValidate
и метода Validate()
для всех моих классов foo. Но, конечно, это не сработает, потому что они на самом деле разные объекты. У меня их много из-за сгенерированного кода и библиотеки XSD, используемой для генерации кода.
Если бы я мог просто затенить внутренние органы (прочитайте выше ......), это бы сработало. У меня много foo в разных пространствах имен (и у меня foo1 до foo100, каждый с одной и той же проблемой). Мне нужно дублировать код, я знаю, что нет-нет, и я не хочу этого делать. Но, если я это сделаю, я, по крайней мере, не хочу иметь столько копий одного и того же кода.
Я вполне уверен, что это можно сделать с помощью динамики, но я бы предпочел не идти туда.
Может кто-нибудь предложить какой-то другой способ написания этих методов проверки и не нужно вручную копировать в частичный класс каждого namespace.class?