小编Cle*_*ems的帖子

WCF服务返回字典数组<string,object>

我一直在尝试使用SilverLight客户端来调用将返回的ASP.Net WCF服务Dictionary<string, object>.当字典中的值是简单类型时,这很好用int,string或者Guid.

但是,我现在有一个场景,我需要其中一个值为数组Dictionary<string, object>!这一切都编译得很好,服务的签名没有改变,但服务调用现在失败了.

任何想法如何解决它?我试图用KnownTypeServiceKnownType属性来注释我的服务类和方法,但这不起作用.

这是一段代码:

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1
{
    [OperationContract]
    [ServiceKnownType(typeof(Dictionary<string, object>))]
    public Dictionary<string, object> GetObject()
    {
        return new Dictionary<string, object>()
            {
                { "pty1", 1 },
                { "pty2", Guid.NewGuid() },
                { "pty3", "blah" },
                { "pty4", new Dictionary<string, object>[]
                              {
                                  new Dictionary<string, object>()
                                      {
                                          { "pty1", 4 },
                                          { "pty2", Guid.NewGuid() },
                                          { "pty3", "blah" },
                                      }
                                   , …
Run Code Online (Sandbox Code Playgroud)

c# wcf dictionary object

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

dictionary ×1

object ×1

wcf ×1