首页 新闻 会员 周边 捐助

wcf返回值问题,高手进

0
悬赏园豆:5 [已解决问题] 解决于 2012-12-14 21:38
 public Dictionary<string, object> get()
        {
            Dictionary<string, object> dic = new Dictionary<string, object>
            {
                {"123",new CompositeType{ BoolValue=true, StringValue=""}}
            };
            return dic;
        }
 
连接关闭....请问wcf不能这样返回嘛??
彬彬@科比的主页 彬彬@科比 | 初学一级 | 园豆:43
提问于:2012-12-14 13:59
< >
分享
最佳答案
0

新建一个类

[KnownType(typeof(CompositeType))]   //这里添加object的可能类型

public class ClassA     {

        public string Name { get; set; }

        public object obj { get; set; }   

  }

public List<ClassA> get()        

{          

   var dic = new List<ClassA>();   

          dic.Add(new ClassA { Name = "123", obj = new CompositeType { BoolValue = true, StringValue = "" } });

            return dic;   

      }

这样虽然可以,但是不明白你的应用场景,总觉得有点别扭,因为这得在编程之前知道object的可能类型(可以指定一个或者多个)

收获园豆:5
RyanCheng | 菜鸟二级 |园豆:474 | 2012-12-14 18:07
其他回答(2)
0

不能,不能是 object 类型,必须是具体类型。

Launcher | 园豆:45050 (高人七级) | 2012-12-14 14:21

不是得。。object我传入string类型的时候也是可以的。。

支持(0) 反对(0) 彬彬@科比 | 园豆:43 (初学一级) | 2012-12-14 14:24

@彬彬@科比: 那你换成 CompositeType 呢?

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2012-12-14 14:26

CompositeType是wcf测试中自带的一个类。。就是不行。。我也不知道为什么。。我重新建一个类也是不行的。。好像简单类型就可以。。好奇怪!

支持(0) 反对(0) 彬彬@科比 | 园豆:43 (初学一级) | 2012-12-14 14:31

@彬彬@科比: 那不就得了,你又何必跟我在这里较真“不是得。。object我传入string类型的时候也是可以的。。”呢?

http://vicyao.blogbus.com/logs/31105265.html

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2012-12-14 14:36
0

换成具体的类型试试

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-14 14:28

就是不想换成具体类型。。有别的办法嘛?

支持(0) 反对(0) 彬彬@科比 | 园豆:43 (初学一级) | 2012-12-14 14:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册