作为枚举的类(或类似枚举的东西)

Nat*_*han 0 c# web-services

我正在使用第三方Web服务,它在其中一个类上公开了一个status属性,但这个属性实际上是另一个类本身.

虽然这不是很好的震撼,但我正在尝试更容易地为公司中的其他开发人员使用这个Web服务,因为Web服务被抽象化了,我们有自己的适配器类,只暴露我们需要的属性/方法,我一直在试图想出一种方法,让我像对待enum一样对待状态对象

我想直到结束是什么 object.status = StatusAdapter.<value>

在任何人说"简单地使用枚举"之前我不仅仅使用枚举的原因是Web服务对象所代表的状态数据可以由用户随时添加,这意味着我必须更改类库并重新部署到使用它的所有应用程序.

有任何想法吗?

编辑 为了澄清我希望最终开发人员能够执行以下操作,当StatusAdapter不是枚举但在运行时动态填充时,沿着枚举行.

If(foo.Status == StatusAdapter.NotStarted){...}
Run Code Online (Sandbox Code Playgroud)

Gra*_*ton 5

使用界面.那应该做的.

举个例子,这样做

public interface IStatus
{
}

public class SuccessStatus: IStatus
{
}

public class FailStatus: IStatus
{
}
Run Code Online (Sandbox Code Playgroud)

在你的班上,你可以这样做:

public class CheckWebService
{
  public IStatus Status
  {get;set;}

}
Run Code Online (Sandbox Code Playgroud)

因此,任何使用您班级的人都可以轻松完成

  var checking = new CheckWebService();
   checking.Status=new SuccessStatus();
Run Code Online (Sandbox Code Playgroud)

或者定义自己status继承IStatus并使用它.

通过这种方式,您不必重新部署代码,但仍然可以让用户定义自己的状态.