Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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
C# 对象反序列化_C#_Generics_Object_Deserialization - Fatal编程技术网

C# 对象反序列化

C# 对象反序列化,c#,generics,object,deserialization,C#,Generics,Object,Deserialization,对于反序列化,我使用工作方法: public static bool InvokeDeserializeMethod<T>(ref T o, string serializedObject) { Type[] typesParameters = new Type[]{typeof(string)}; MethodInfo methodInfo = typeof(o).GetMethod("Deserialize",typ

对于反序列化,我使用工作方法:

public static bool InvokeDeserializeMethod<T>(ref T o, string serializedObject)
        {
            Type[] typesParameters = new Type[]{typeof(string)};
            MethodInfo methodInfo = typeof(o).GetMethod("Deserialize",typesParameters);
            object[] deserializeMethodParameters = new string [] {serializedObject};
            if (methodInfo != null)
            {
                try
                {
                    o = (T)methodInfo.Invoke(o, deserializeMethodParameters);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
            return false;
        }
公共静态bool invokedeSerializedMethod(ref T o,string serializedObject)
{
类型[]类型参数=新类型[]{typeof(string)};
MethodInfo MethodInfo=typeof(o).GetMethod(“反序列化”,类型参数);
对象[]反序列化MethodParameters=新字符串[]{serializedObject};
如果(methodInfo!=null)
{
尝试
{
o=(T)methodInfo.Invoke(o,反序列化MethodParameters);
返回true;
}
抓住
{
返回false;
}
}
返回false;
}
现在我正在制作复制、粘贴函数,我需要反序列化一些序列化对象(字符串) 我不能使用这个方法,因为我不想发送一些现有对象的引用,我需要创建一个新对象 如果我有这样一种方法,那将是最好的:

public static T InvokeDeserializeMethod<T>(string serializedObject)
publicstatict invokedSerializedMethod(string serializedObject)
有没有办法实现它,返回类型为T的对象,而不需要我发送给方法的现有对象?(我将用于此方法的每个对象都包含序列化和反序列化方法)
谢谢

如果知道已知类型的构造函数参数,或者不想在反序列化时调用类型构造函数,则可以使用其中一个方法重载来创建该类型的实例