Mak*_*Vi. 5 c# asp.net serialization
反序列化这个的最好方法是什么
Dictionary<string, object>{
{"fName", "John"},
{"lName", "Doe"},
{"email", "john@doe.net"}
}
Run Code Online (Sandbox Code Playgroud)
对此
class Member{
string fName;
string lName;
string email;
}
Run Code Online (Sandbox Code Playgroud)
如今,NewtonSoft 在 ASP.NET 应用程序中变得如此普遍,如果我需要一个简短而甜蜜的解决方案来处理这种类型的映射,我可以使用类似这样的代码。当然,如果第三方库尚未存在,那么引入第三方库可能会被滥用,但有时我们只是使用有效的库。牛顿软件做到了!
using Newtonsoft.Json;
class SerializationTests
{
public void DictionarySerializeSample()
{
var dict = new Dictionary<string, object>
{
{"fName", "John"},
{"lName", "Doe"},
{"email", "john@doe.net"}
};
string dictInJson = JsonConvert.SerializeObject(dict);
var member = JsonConvert.DeserializeObject<Member>(dictInJson);
// use Newtonsoft to write out the object re-serialized
Console.WriteLine(JsonConvert.SerializeObject(member, Formatting.Indented));
}
public class Member
{
public string fName;
public string lName;
public string email;
}
}
Run Code Online (Sandbox Code Playgroud)
这并不是真正意义上的序列化,通常是指获取一些磁盘或网络格式的数据(二进制、ASCII、JSON 等)并将其加载到运行时对象中。
但是,如果我正确理解你的意思,我认为你想做的是......
public Member( Dictionary<string,object> dictionary )
{
fName = dictionary["fName"];
lName = dictionary["lName"];
email = dictionary["email"];
}
// usage Member m = new Member( inputDictionary );
Run Code Online (Sandbox Code Playgroud)