【问题标题】:WebService: edit objects before send them to the clientWebService:在将对象发送到客户端之前对其进行编辑
【发布时间】:2011-10-20 11:23:52
【问题描述】:

我正在开发一个使用 web 服务来搜索数据、在数据库中插入记录等的应用程序。

我有一个问题:我在对象中有一些字符串属性,这些属性在末尾填充了空格,或者只有空格。这真的很烦人:/

我有一个想法:在将对象发送到客户端之前修剪 Web 服务上的所有字符串属性。这将解决我的问题:D

这可能使用反射或其他东西吗?

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

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

【问题讨论】:

  • 你有能力修改webservice代码吗?
  • 我知道这超出了问题范围,但您不必new MyObject() 即可忽略下一行的引用^^

标签: c# .net wcf web-services asmx


【解决方案1】:

你可以,但这是一个糟糕的主意。

假设您发送了 10,000 个对象。您将在这 10,000 行上使用反射来修剪字符串属性。更糟糕的是,您必须“搜索”每个对象的属性列表,直到找到字符串。

只需在字符串属性上调用Trim()。你已经知道它们是什么了。

编辑 在您的代码中,您已经有一个对 MyObject 的引用,它已经公开了哪些属性是字符串,哪些不是。只需在这些属性上调用 Trim() 但由于字符串是不可变的,因此请确保您执行类似

的操作
myObject.StringProperty=myObject.StringProperty.Trim();

【讨论】:

  • 是的,我了解所有这些问题,请告诉我该怎么做?
  • 发布网络服务调用以及您想要在代码中修剪字符串的位置
【解决方案2】:

这是一个非常糟糕的主意。

您的服务旨在查询数据库并返回数据。这是它应该做的。

如果您不想要尾随空格,则不要将尾随空格放入数据库中。

【讨论】:

  • 我不能更同意你的看法,但我是外包的,我的问题是:我的网络服务正在消耗来自客户端的其他网络服务。 Web 服务完全疯了:/ 某些属性的末尾带有空格,或者只有空格。这是我的问题出现的地方,我需要一些自动删除空格的东西。这就是为什么我想在我的网络服务上进行 Trim。
  • P. S.:不可能告诉客户改变他们的网络服务......他们是完美的。大声笑
猜你喜欢
  • 1970-01-01
  • 2021-08-10
  • 2016-10-27
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2018-06-20
  • 1970-01-01
相关资源
最近更新 更多