C# 不允许来自静态类型的数据

C# 不允许来自静态类型的数据,c#,xml,web-services,asmx,C#,Xml,Web Services,Asmx,我正在.net中制作一个API,它将使用xml数据与其客户机进行通信。 客户端软件可以是php、asp.net等任何语言。 开发此类API的最佳方式是什么, 我试图使用.net webservices,但[webmethods]不允许使用非静态数据, 在我的API中,有很多东西只适用于非静态数据。 你能提出解决这个问题的办法吗? 有没有不使用.net Web服务就开发它的方法?根据这些评论,您的意思实际上是“不允许静态类”。所以不要使用静态类。我建议将这些静态属性移动到默认实例中: class

我正在.net中制作一个API,它将使用xml数据与其客户机进行通信。 客户端软件可以是php、asp.net等任何语言。 开发此类API的最佳方式是什么, 我试图使用.net webservices,但[webmethods]不允许使用非静态数据, 在我的API中,有很多东西只适用于非静态数据。 你能提出解决这个问题的办法吗?
有没有不使用.net Web服务就开发它的方法?

根据这些评论,您的意思实际上是“不允许静态类”。所以不要使用静态类。我建议将这些静态属性移动到默认实例中:

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,因此我没有将其称为singleton,因为严格来说,它不是。

您所说的“非静态数据”是什么意思?我认为您所指的示例在这里会有所帮助。Web服务可以很好地处理大多数数据。我假设这里的“静态数据”指的是诸如关键字、类型代码等不会频繁更改的内容,但web服务无法区分这一点(它甚至无法分辨)。Web服务当然不能与静态类一起工作,如果这是您的意思的话-没有要发送的对象。但是您说“不允许非静态”,这完全是错误的。。。