Когда вы создаете новый проект WCF, для вас создается образец сервиса. Контракт данных по умолчанию является (я только изменил тип строки название поля):Почему частные поля в контрактах на данные изменяются через публичные?
[DataContract]
public class CompositeType
{
bool boolValue = true;
string name = "";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string Name
{
get { return name; }
set { name = value; }
}
}
Какой смысл иметь эти частные поля boolValue и имя? Является ли хорошей практикой писать некоторые данные, дезинфицирующие или какие-то другие манипуляции в контракте, таким образом, раздувая его? Кажется, единственная разумная причина для меня не писать в поля напрямую. Так ли это вирусы или у него есть какая-то причина?
ОК, вопрос на самом деле состоял в том, следует ли санировать данные ** в ** контракте данных (означает при отправке) или ** перед ** отправкой данных. Я считаю, что контракт с данными может стать ** вздутым **, если я напишу в нем санитарную логику. Так вы не согласны? – Arnthor
Я не согласен. То, что вы называете раздуванием, другое определяет как наилучшую практику разработки программного обеспечения. Да, вы добавляете несколько строк кода, но защитные меры лучше всего того стоят. Кроме того, мы не пишем чипы ROM. У нас есть мощность обработки, пропускная способность и память, чтобы не жертвовать проницательностью на алтаре экономики. – GrayFox374
Ты меня не понял. Данные ** должны быть подвергнуты санитарной обработке, вопрос заключается в том, что он будет дезинфицирован в контрактах с данными или в каком-либо другом месте. Например, это, конечно, не ** звуковая инженерная практика для записи данных, дезинфицирующих код в файл .ascx, вы делаете это в * back-end * .ascx.cs файле. ** Я не спрашиваю о геттерах, сеттерах или проверке. Я был рядом. ** Вопрос был, где провести валидацию. – Arnthor