4
같은 일을하고 싶습니다
VResult<typeof value> = new VResult<typeof value>(value);
그럴 수 있습니까?
궁극적 인 목표는/직렬화 VResult<T>
를 역 직렬화하는 것입니다
string json = JsonConvert.SerializeObject(new VResult<bool>(true));
어디 개체 또는 기본 데이터 타입이 될 수 같은
int
또는
bool
. 즉, 수신 측에 내가
JObject obj = JObject.Parse(json);
string vt = (string)obj["ValueTypeName"];
string vtn = (string)obj["ValueTypeNamespace"];
Type type = Type.GetType($"{vtn}.{vt}");
var value = Activator.CreateInstance(type);
value = obj["Value"];
VResult<typeof value> vr = new VResult<typeof value> (value); //not correct
모두를 얻기 위해 사용할 수 있도록
나는
ValueTypeName = Value.GetType().Name;
및
ValueTypeNamespace = Value.GetType().Namespace;
속성을 추가하는 데이터 전송 객체를 사용하고 있습니다 Type
에 대한 정보 value
,하지만 난 단지 generi를 얻는 방법을 알아 내지 못한다. c <T>
value
에서 VResult<T>
생성자에 전달하십시오.
object value = 1; //I don't know the runtime type of this
var genericType = typeof(VResult<>).MakeGenericType(value.GetType());
var genericInstance = Activator.CreateInstance(genericType,
new object[] { value });
을 그리고 지금 당신은 1
의 value
와 VResult<int>
의 인스턴스가 :
예 - 그게 내가 찾고있는 것입니다. 위대한 작품! –