首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么会导致.NET服务引用中的属性在调用时变为空?

什么会导致.NET服务引用中的属性在调用时变为空?
EN

Stack Overflow用户
提问于 2009-03-04 23:37:37
回答 2查看 272关注 0票数 0

我的笔记本电脑刚刚崩溃了(把水洒在上面了)。我将我的工作代码(2天前的备份)从Windows Server2008笔记本电脑复制到运行Visual Studio2008 SP1的Vista笔记本电脑上。两者都运行.NET 3.5 SP1。

我有一个返回产品信息的web方法调用。

web服务(在托管服务器上运行)中的一些字段如下所示:

代码语言:javascript
复制
public class Product
{
    [XmlAttribute("sku")]
    public string SKU;

    [XmlAttribute("name")]
    public string Name;

    [XmlAttribute("category")]
    public string CategoryName;

    [XmlAttribute("categoryKey")]
    public string CategoryKey;

    public List<ProductSectionInfo> Sections;

    public List<MediaItem> MediaItems;

    public string Foo = "bar";
}

public class MediaItem
{

    [XmlAttribute("type")]
    public string Type;

    [XmlAttribute("imageKey")]
    public string ImageKey;

    [XmlAttribute("path")]
    public string Path;

    [XmlAttribute("thumbnailPath")]
    public string ThumbnailPath;

    [XmlAttribute("thumbnailImageKey")]
    public string ThumbnailImageKey;

    [XmlAttribute("selectable")]
    public bool Selectable;
}

当我运行'GetProduct' web方法时,'Sections'属性会被填充到我的C#客户端(在新笔记本电脑上),但'MediaItems的属性却没有。它只是在监视窗口中显示为null。

所以我在Fiddler中查找,两者都填充在XML中。两者都是列表,在我的代理中定义为标准的[]数组。

你可能已经注意到我在上面添加了一个'Foo‘属性。我在服务器上做了这件事,重新编译并重新创建了web-reference。我能够验证在客户端中确实遇到了'Foo‘属性。所以“MediaItems”不是大写的,或者类似的东西。

我非常确信这台新笔记本电脑上有一些不同于其他笔记本电脑的东西。我实际上并没有写什么新的东西,只是在其他地方做了一些修改。我甚至没有重新创建服务引用代理,直到我注意到一个问题。我的客户机在测试服务器上运行的另一个实例正在正常运行,正在访问相同的服务。

修好的笔记本电脑明天就回来了,但我真的很想把这件事搞清楚。我很迷惑。我以前见过像这样的各种奇怪的事情,但真的看不出这里发生了什么。我能以某种方式调试到代理中吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-04 23:53:54

我知道这是一种问题,只要我提出一些东西,它就会自己解决--当然是这样的。

我仍然不知道为什么。事实上,我能够添加一个'Foo‘属性,重新生成代理,但它仍然不能工作,这是非常奇怪的。

  • I添加了一个新的“MediaItems2”属性并为其分配了一个空的“MediaItem”

新列表=新列表{新的MediaItem()})

  • I生成了一个新的proxy

  • Everything MediaItems2 MediaItem[]

  • 我从web服务中删除了'MediaItems2‘

  • 我生成了一个新的代理

  • 它仍然有效

不过还是很迷惑。这是第一次在这台笔记本电脑上运行这个项目(ASP.NET MVC)。

哦,好了,回去工作吧……

票数 0
EN

Stack Overflow用户

发布于 2009-03-04 23:44:42

我遇到的大部分消息加载不正确的问题通常都是代理和服务之间的区别。通常是某些东西发生了变化/移动,或者甚至xml名称空间发生了变化/问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/612993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档