Веб-сервис: редактирование объектов перед отправкой их клиенту

#c# #.net #wcf #web-services #asmx

#c# #.net #wcf #веб-сервисы #asmx

Вопрос:

Я разрабатываю приложение, которое использует веб-сервисы для поиска данных, вставки записей в базу данных и т.д.

У меня проблема: у меня есть некоторые строковые свойства в объектах, которые заполнены пробелами в конце или просто пробелами. Это действительно раздражает :/

У меня была идея: обрезать все строковые свойства веб-сервиса перед отправкой объектов клиенту. Это решило бы мою проблему: D

Возможно ли это с помощью отражения или чего-то другого?

 //WebMethod
public MillenniumCoreCustomer LoadCustomer()
{
     MyObject returnObj = new MyObject();
     returnObj = GetDataFromSourceNotControlatedByMe();

     // I want to trim all string properties here
     return returnObj;
}
  

Комментарии:

1. Есть ли у вас возможность изменять код веб-сервиса?

2. Я знаю, что это не входит в сферу вопросов, но вам не new MyObject() нужно отклонять ссылку в следующей строке ^^

Ответ №1:

Вы можете, но это ужасная идея.

Представьте, что вы отправляете 10 000 объектов. Вы будете использовать отражение для этих 10 000 строк только для обрезки строковых свойств. Хуже того, вам придется «искать» список свойств каждого объекта, пока не найдете те, которые являются строками.

Просто вызовите Trim() свойства строки. Вы уже знаете, какие они.

РЕДАКТИРОВАТЬ В вашем коде у вас уже есть ссылка на MyObject, которая уже показывает, какие свойства являются строками, а какие нет. Просто вызовите Trim() для этих свойств, но поскольку строки неизменяемы, убедитесь, что вы делаете что-то вроде

 myObject.StringProperty=myObject.StringProperty.Trim();
  

Комментарии:

1. Да, я понимаю все эти проблемы, просто скажите мне, как я могу это сделать?

2. Опубликуйте вызов веб-службы и укажите, где в вашем коде вы хотите обрезать строки

Ответ №2:

Это очень плохая идея.

Ваш сервис предназначен для запроса базы данных и возврата данных. Это то, что он должен делать.

Если вам не нужны конечные пробелы, то для начала не помещайте конечные пробелы в базу данных.

Комментарии:

1. Я не могу больше согласиться с вами, но я на аутсорсинге, и моя проблема в том, что мой веб-сервис использует другие веб-сервисы от клиента. Эти веб-сервисы совершенно сумасшедшие:/ Некоторые свойства имеют пробелы в конце или только пробелы. Вот где возникает моя проблема, мне нужно что-то, что автоматически удаляет эти пробелы. Вот почему я решил обрезать свой веб-сервис.

2. P. S.: Невозможно сказать клиенту, чтобы он изменил их веб-сервисы… они безупречны. Лол