在我的应用程序中,我必须序列化/反序列化一些数据。现在我使用这样的代码:
public class Outer
{
public Inner Inner { get; set; }
}
public class Inner
{
public string InnerProperty { get; set; }
}
我怎样才能避免宣布内部阶级?我需要这样的东西:
public class OuterNew
{
public class Inner2
{
public string InnerProperty { get; set; }
}
}
但内部类必须是属性(已获取/设置)才能正确使用序列化/反序列化。
答案 0 :(得分:1)
第一个块中的代码是可以的,应该是要使用的代码。它没有问题,所以我不确定你要解决什么问题。
在第二个代码块中,您仍然需要创建属性。现在你只有一个等待使用的内部类。
您可以使用dynamic
绕过为反序列化创建类,但实际上,请继续使用您现在的代码。如果不使用dynamic
,您的代码就不会出错。
答案 1 :(得分:1)
你对Inner2的定义只定义了一个类,你还需要一个属性:
public class OuterNew
{
public class Inner2
{
public string InnerProperty { get; set; }
}
public Inner2 Inner { get; set; }
}
但是你可以看到这只会改变Inner2的全名,
它现在被称为public class <namespaces>.OuterNew.Inner2
。
因此,您不妨使用第一个代码段,并且通常不鼓励使用嵌套的公共类型。