Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 如何将DataContractJsonSerializer与泛型一起使用_Generics_Asp.net Core_F#_Deserialization_Json Deserialization - Fatal编程技术网

Generics 如何将DataContractJsonSerializer与泛型一起使用

Generics 如何将DataContractJsonSerializer与泛型一起使用,generics,asp.net-core,f#,deserialization,json-deserialization,Generics,Asp.net Core,F#,Deserialization,Json Deserialization,我在上找到了这个示例,它在传递类型时将字符串反序列化为JSON,反之亦然 /// Object to Json let internal json<'t> (myObj:'t) = use ms = new MemoryStream() (new DataContractJsonSerializer(typeof<'t>)).WriteObject(ms, myObj) Encoding.Default.GetS

我在上找到了这个示例,它在传递类型时将字符串反序列化为JSON,反之亦然

/// Object to Json 
let internal json<'t> (myObj:'t) =   
        use ms = new MemoryStream() 
        (new DataContractJsonSerializer(typeof<'t>)).WriteObject(ms, myObj) 
        Encoding.Default.GetString(ms.ToArray()) 


/// Object from Json 
let internal unjson<'t> (jsonString:string)  : 't =  
        use ms = new MemoryStream(ASCIIEncoding.Default.GetBytes(jsonString)) 
        let obj = (new DataContractJsonSerializer(typeof<'t>)).ReadObject(ms) 
        obj :?> 't
问题

如何使用我的示例调用
json
unjson
函数


为什么将函数指定为内部函数?

要执行此类操作,我通常使用:
System.Web.Extensions.JavaScriptSerializer
类。它有易于使用的
序列化
反序列化
方法,可以很好地与泛型配合使用

您需要包含对
System.Web.Extensions
程序集的引用

Msdn链接:

否,需要WCF属性(即
DataContract
DataMember

我的理解是,您尝试使用的序列化程序类在WCF内部用于序列化

代码示例:

/// Object to Json 
let internal json<'t> (myObj:'t) =   
     let ser = new System.Web.Script.Serialization.JavaScriptSerializer()   
     ser.Serialize(myObj)

/// Object from Json 
let internal unjson<'t> (jsonString:string)  : 't =  
    let ser = new System.Web.Script.Serialization.JavaScriptSerializer() 
    let obj = ser.Deserialize<'t>(jsonString)
    obj
///对象到Json

让内部jsonnice,但我没有看到F#示例,我的示例代码有任何实现吗?我将看看在没有IDE或语法检查的情况下我可以在手机上获得多大的成功。。。接下来…谢谢你的代码,我会接受答案,但你知道吗,我在.net core上,我没有这个库:-)@App2015请查看与.net core相关的更新。希望这有帮助!
let str = """{"name: "test"; version="97234982734"}"""
/// Object to Json 
let internal json<'t> (myObj:'t) =   
     let ser = new System.Web.Script.Serialization.JavaScriptSerializer()   
     ser.Serialize(myObj)

/// Object from Json 
let internal unjson<'t> (jsonString:string)  : 't =  
    let ser = new System.Web.Script.Serialization.JavaScriptSerializer() 
    let obj = ser.Deserialize<'t>(jsonString)
    obj