Показать сообщение отдельно
Старый 28.05.2017, 16:01   #2  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Как вариант такое обьяснение. Для как бы mapping через metadata, то есть для связки но не трогая код.
Но я конечно не уверен, это так - для темы.
Цитата:
есть у вас класс Point с полями X и Y
class Point
{
public int X {get; set;}
public int Y {get; set;}
}
Вы хотите его сериализовать в JSON. Окей, не вопрос, даже ничего не понадобится. Однако теперь есть проблема, точки нужно отдать в стороннюю библиотеку, где они должны назваться PTXCOORD и PTYCOORD. Естественно, свой код вы захламлять не хотите, у точки есть координаты X и Y, не нужно все эти дебильные прфиксы и суффиксы писать (однако эта библиотека принимает данные только в таком формате. И вот, здравствуйте, атрибуты:

[DataContract]
class Point
{
[DataMember(Name = "PTXCOORD ")]
public int X {get; set;}
[DataMember(Name = "PTYCOORD ")]
public int Y {get; set;}
}
Всё. Ваш код будет работать с нормальными именами, библиотека получит данные в нужном формате, все довольны.

Про WCF я и не говорю, там чуть менее чем всё на атрибуты завязано.
Что такое атрибуты и зачем они? Для чего нужны директивы препроцессора? - C#
http://www.cyberforum.ru/csharp-begi...ad1776997.html