【问题标题】:does not allow data from static types不允许来自静态类型的数据
【发布时间】:2011-01-22 11:39:55
【问题描述】:

我正在 .net 中创建一个 API,它将使用 xml 数据与其客户端进行通信。 客户端软件可以是任何语言 php、asp.net 等。 开发此类 API 的最佳方法是什么, 我试图使用 .net webservices',但 [webmethods] 不允许非静态数据, 在我的 API 中,有很多东西只能用于非静态数据。 你能建议任何解决这个问题的方法吗? 有什么方法可以在不使用 .net webservies 的情况下开发它?

【问题讨论】:

  • “非静态数据”是什么意思?
  • 我认为你的意思的一个例子在这里会有所帮助。 Web 服务可以很好地处理大多数数据。我假设这里的“静态数据”是指关键字、类型代码等不经常更改的内容 - 但网络服务不会区分这一点(它不能甚至告诉)。 Web 服务当然不能与静态类一起使用,如果这就是您的意思 - 没有要发送的对象。
  • 但是你说“不允许非静态”这完全是错误的方式......

标签: c# xml web-services asmx


【解决方案1】:

基于 cmets,您实际上的意思是“不允许静态类”。所以...不要 SE 静态类。我建议将这些静态属性移到默认实例中:

class Foo {
    private static readonly Foo @default =
        new Foo();
    public static Foo Default { get { return @default; } }
    public int A { get; set; }
    public string B { get; set; }

}

并将Foo.Default 对象的属性视为现有的静态属性。

请注意,使用 XmlSerializer 您需要一个公共 ctor,因此我没有将其称为单例,因为 严格来说它不会。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-09
    • 2020-05-19
    • 2020-08-15
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多