繁体   English   中英

如何声明匿名类的属性

[英]How to declare a property of an anonymous class

在我的应用程序中,我必须对一些数据进行序列化/反序列化。 现在,我使用如下代码:

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; }
} 
}

但是内部类必须是属性(具有get / set)才能正确地进行序列化/反序列化。

您第一个程序段中的代码是可以的,应该是要使用的代码。 它没有问题,所以我不确定您要解决的问题。

在第二个代码块中,您仍然需要创建属性。 现在,您只有一个内部类,坐在那里等待使用。

您可以通过使用dynamic来避免创建反序列化类,但实际上,请继续使用您现在的代码。 不使用dynamic您的代码将不那么容易出错。

您对Inner2的定义仅定义一个类,您仍然需要一个属性:

public class OuterNew
{
    public class Inner2
    {
        public string InnerProperty { get; set; }
    } 

    public Inner2 Inner { get; set; }

}

但是正如您所看到的,这只会更改Inner2的全名,
它现在称为public class <namespaces>.OuterNew.Inner2

因此,您最好使用第一个代码段,并且一般不建议使用嵌套的公共类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM