我们有一个结构,其中包含一个源提供的动态数据和固定格式的错误,如下所示:
[1, 2, 3]
[1, 2, 3]
[1, 2, 3]
TheData可以是各种各样的东西。一个字符串或各种类型的集合。
数据有时无法结构化(在这种情况下,数据应保持动态,或者在某些情况下可以进行结构化。
如何将TheData变成非动态对象?
我正在寻找与此类似的东西(如果可能的话)
struct AllOurInfo {
public dynamic TheData {get;set;}
public string[] Errors {get;set;}
}
答案 0 :(得分:1)
泛型最好在编译时知道要使用的类型时使用。如果要处理此问题,您可以使用:
AllOurInfo
属性的基础Errors
类,您将返回此值。AllOurInfo<T> : AllOurInfo
类。T
中确定EvaluateData
的类型之后,使用Reflection创建具有确定的AllOurInfo<T>
的{{1}}的实例,并将其返回为T
AllOurInfo
返回到AllOurInfo
。总的来说,您不会赢太多,并且如果您不能使用Reflection,那么您将无法做到这一点。
我在这里看到两个选项:
AllOurInfo<T>
的类型过多,请保持原样。T
当然,您仍然需要强制转换为预期的类型。