Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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#_Json_Asp.net Core_.net Core - Fatal编程技术网

C# 如何将类类型作为属性传递

C# 如何将类类型作为属性传递,c#,json,asp.net-core,.net-core,C#,Json,Asp.net Core,.net Core,公共类Myclass { 公共类型类型{get;set;} } Json序列化时,我收到错误“无法从System.String转换或转换为System.Type” 有人能帮我吗 要支持最简单的方法(未经测试),应该是(假设您使用的是Newtonsoft.Json): 要支持最简单的方法(未经测试),应该是(假设您使用的是Newtonsoft.Json): 您可以实现自己的转换器。看一看这个例子,然后在路上实现它 公共类MyClass { [JsonConverter(类型化(JsonType

公共类Myclass
{ 
公共类型类型{get;set;}
}

Json序列化时,我收到错误“无法从System.String转换或转换为System.Type”


有人能帮我吗

要支持最简单的方法(未经测试),应该是(假设您使用的是Newtonsoft.Json):


要支持最简单的方法(未经测试),应该是(假设您使用的是Newtonsoft.Json):


您可以实现自己的转换器。看一看这个例子,然后在路上实现它


公共类MyClass
{
[JsonConverter(类型化(JsonTypeConverter))]
公共类型类型{get;set;}
}
公共类JsonTypeConverter:JsonConverter
{
公共重写void WriteJson(JsonWriter编写器、对象值、JsonSerializer序列化器)
{
变量类型=作为类型的值;
writer.WriteValue(type.Name);
}
公共重写对象ReadJson(JsonReader阅读器,类型objectType,对象existingValue,JsonSerializer序列化程序)
{
抛出new NotImplementedException(“不必要,因为CanRead为false。该类型将跳过转换器。”);
}
公共覆盖布尔可读取
{
获取{return false;}
}
公共覆盖布尔CanConvert(类型objectType)
{
返回objectType==typeof(Type);
}
}

您可以实现自己的转换器。看一看这个例子,然后在路上实现它


公共类MyClass
{
[JsonConverter(类型化(JsonTypeConverter))]
公共类型类型{get;set;}
}
公共类JsonTypeConverter:JsonConverter
{
公共重写void WriteJson(JsonWriter编写器、对象值、JsonSerializer序列化器)
{
变量类型=作为类型的值;
writer.WriteValue(type.Name);
}
公共重写对象ReadJson(JsonReader阅读器,类型objectType,对象existingValue,JsonSerializer序列化程序)
{
抛出new NotImplementedException(“不必要,因为CanRead为false。该类型将跳过转换器。”);
}
公共覆盖布尔可读取
{
获取{return false;}
}
公共覆盖布尔CanConvert(类型objectType)
{
返回objectType==typeof(Type);
}
}

你能提供一个json的例子,如果你试图解析它,你会得到异常吗?我怀疑你想反序列化一个
类型,而是一个类型名称,然后你可以将它解构成
类型,你知道吗?你能提供一个json的例子,如果你试图解析它,你会得到异常吗?我怀疑你想反序列化一个
类型
,而是一个类型名称,然后你可以解构成一个
类型
,是吗?请提供一个堆栈跟踪,提供一个堆栈跟踪
public class MyClass
{
  private string _type;

  [JsonIgnore]
  public Type type {get => Assembly.GetType(_type, true, false); set => value.Fullname;}
}