相关疑难解决方法(0)

C#4.0中使用的"动态"类型是什么?

C#4.0引入了一种名为"dynamic"的新类型.这听起来不错,但程序员会用它做什么?

有没有可以节省一天的情况?

.net c# dynamic c#-4.0

218
推荐指数
5
解决办法
14万
查看次数

如何将C#匿名类型序列化为JSON字符串?

我正在尝试使用以下代码将匿名类型序列化为JSON:

var serializer = new DataContractJsonSerializer(thing.GetType());
var ms = new MemoryStream();
serializer.WriteObject(ms, thing);
var json = Encoding.Default.GetString(ms.ToArray()); 
Run Code Online (Sandbox Code Playgroud)

但是,执行此操作时会出现以下异常:

类型'<> f__AnonymousType1`3 [System.Int32,System.Int32,System.Object []]'无法序列化.请考虑使用DataContractAttribute属性对其进行标记,并使用DataMemberAttribute属性标记要序列化的所有成员.有关其他受支持的类型,请参阅Microsoft .NET Framework文档.

我不能将属性应用于匿名类型(据我所知).有没有其他方法来进行此序列化或我错过了什么?

c# json anonymous-types json-serialization datacontractjsonserializer

158
推荐指数
7
解决办法
11万
查看次数

C#4:动态类型的真实示例

我认为我的大脑中途包含了C#4中的动态类型概念,但在我的生活中无法找到我真正想要使用它的场景.

我确信有很多,但我只是无法建立连接,以便我能够设计出一个更好的解决方案,而不是接口,依赖注入等动态解决方案.

那么,动态类型使用是否恰当的实际应用场景是什么?

.net c#

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

将.NET Dictionary <string,string>序列化为JSON键值对象

我需要得到:

public class Package
{
    public Package()
    {
        name = "";
        type = new List<Dictionary<string, string>>();
    }

    public string name { get; set; }
    public List<Dictionary<string, string>> type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

成:

{
    "name":"package_name",
    "type":
    {
        "http://random.url.as.key":"random/value"
    }
}
Run Code Online (Sandbox Code Playgroud)

有:

Package package = new Package();
package.name = "package_name";
package.type.Add(new Dictionary<string, string>() { { "http://random.url.as.key", "random/value" } });
Run Code Online (Sandbox Code Playgroud)

我明白了:

{
    "name":"package_name",
    "type":
    [
        [
            {
                "Key":"http:\/\/random.url.as.key",
                "Value":"random\/value"
            }
        ]
    ]
}
Run Code Online (Sandbox Code Playgroud)

同时,用:

var package = new
{
    name = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net wcf json

29
推荐指数
1
解决办法
7万
查看次数

JSON序列化列表<KeyValuePair <string,object >>

我在Web API项目中使用了一个Dictionary,它在JSON中进行序列化:

{"keyname":{objectvalue},"keyname2:"....
Run Code Online (Sandbox Code Playgroud)

由于我有重复的键,我不能再使用Dictionary类型了,而现在我正在使用它 List<KeyValuePair<string,object>>.

但这是序列化的方式:

[{"Key":"keyname","Value":"objectvalue"}...
Run Code Online (Sandbox Code Playgroud)

有没有办法让List<KeyValuePair>序列化与字典一样?

谢谢.

c# serialization json

20
推荐指数
1
解决办法
4万
查看次数

C#4.0中"动态"变量的实际用途是什么?

如果在调用方法时它们可能不存在,它们的用途是什么?

这是否意味着您可以在动态对象上动态创建方法?

这有什么实际用处?

.net c# c#-4.0

14
推荐指数
1
解决办法
4966
查看次数