Как вариант такое обьяснение. Для как бы 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