Бесплатное использование атрибутов System.Runtime.Serialization? - PullRequest
1 голос
/ 24 марта 2010

Существуют ли какие-либо затраты / недостатки (помимо слишком большого количества набранных) для украшения класса с System.Runtime.Serialization атрибутами (например, [DataContract]), так что его можно использовать локально в качестве прямой ссылки на настольный клиентский проект или как тип для службы WCF? Целью здесь является написание класса уровня данных, который можно использовать как в сценариях с расширенными возможностями (WPF), так и в веб-сценариях. Мои классы данных будут в проекте, который отделен от кода клиента и WCF (*.svc code-behind). Это допустимая попытка повторного использования кода?

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Единственный недостаток, который я вижу, это стоимость включения атрибутов в сборку. Они имеют очень небольшое влияние на производительность, если они не используются.

Я бы сказал, что нет, но это увеличивает размер .DLL и немного расширяет RTTI в сборке, что, особенно если вы перемещаете класс за границу блока чтения, может замедлить загрузку сборки (вызывая дополнительную пару блоки для чтения, которые не были бы в противном случае). Однако эти различия обычно заметны только при тестировании при холодном запуске.

1 голос
/ 24 марта 2010

Добавление класса, свойства или метода не требует никаких затрат - за исключением времени, которое требуется для написания атрибута. Атрибут будет включен в метаданные типа, а затем используется другим компонентом для реализации дополнительных функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...