我正在使用第三方Web服务,它在其中一个类上公开了一个status属性,但这个属性实际上是另一个类本身.
虽然这不是很好的震撼,但我正在尝试更容易地为公司中的其他开发人员使用这个Web服务,因为Web服务被抽象化了,我们有自己的适配器类,只暴露我们需要的属性/方法,我一直在试图想出一种方法,让我像对待enum一样对待状态对象
我想直到结束是什么样 object.status = StatusAdapter.<value>
在任何人说"简单地使用枚举"之前我不仅仅使用枚举的原因是Web服务对象所代表的状态数据可以由用户随时添加,这意味着我必须更改类库并重新部署到使用它的所有应用程序.
有任何想法吗?
编辑 为了澄清我希望最终开发人员能够执行以下操作,当StatusAdapter不是枚举但在运行时动态填充时,沿着枚举行.
If(foo.Status == StatusAdapter.NotStarted){...}
Run Code Online (Sandbox Code Playgroud)
使用界面.那应该做的.
举个例子,这样做
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
并使用它.
通过这种方式,您不必重新部署代码,但仍然可以让用户定义自己的状态.
归档时间: |
|
查看次数: |
222 次 |
最近记录: |