【发布时间】:2012-10-02 15:38:16
【问题描述】:
在获取从客户端发送到服务器上的 WCF 服务的 base64 编码字符串时,我遇到了一个奇怪的问题。在我的 WCF 服务方法中,此字符串始终为 null。我的商务舱是:
[DataContract(Namespace = "")]
public class Test
{
[DataMember]
public int Id { get; set; }
[DataMember]
public int Name { get; set; }
[DataMember]
public int Age { get; set; }
[DataMember]
public string MyString { get; set; }
}
我正在将 xml 中的帖子数据发送到我的 WCF 服务:
string data = string.Format("<Test><Id>{0}</Id><Name>{1}</Name><Age>{2}</Age><MyString>{3}</MyString></Test>",
1, "name", 20, Convert.ToBase64String(image));//image is in bytes
上面的“图像”以字节为单位。
在 MyTestService.svc.cs 中的服务器接收客户端数据时:
public void CreateTest(Test test)
{
在“测试”对象中,我获取了从客户端发送的所有属性的值,“MyString”属性除外。它总是空的。我在 Fiddler 中仔细检查了 xml 中的“MyString”标签包含 base64 编码的字符串。你能帮我解决这个问题吗?
xml 标签中的属性值的长度是否有限制。图片的编码字符串足够长。
【问题讨论】:
-
这可能是一个无用的检查,但只是为了完全确保您可以检查并确保您的最终 XML(数据)验证:xmlvalidation.com
-
我刚刚做了,没有错误。
-
"xml标签中属性值的长度是否有限制。图片的编码字符串足够长。" - 你能不能只创建一个非常小的图像并测试它是否是你的问题?或者也许在测试时只是尝试在尝试发送编码图像之前发送一个标准字符串......