Типы, полученные в WCF и нарушение принципа открытого/закрытого
-
25-10-2019 - |
Вопрос
У меня есть базовый класс, который я использую в сервисных вызовах WCF,
[KnownType(typeof(MyDerivedClass))]
public abstract class MyBaseClass {
//some properties
}
Я выхожу из этого, и каждый раз, когда я получаю [KnownType(typeof(MyDerivedClass))]
атрибут, и каждый раз, когда я это делаю, я нарушаю Открыто закрыто принцип. Есть ли в любом случае, чтобы получить такие классы для использования в WCF и не должны добавлять атрибуты в родительский класс каждый раз?
Решение
Вы можете использовать статический метод, который вернет известные типы:
[DataContract]
[KnownType("GetKnownType")]
public class MyBaseClass
{
//some properties
private static Type[] GetKnownType()
{
return KnownTypesHelper.GetKnownTypes<MyBaseClass>();
}
}
Теперь создайте статический класс.
Не связан с StackOverflow