定义与类交互的契约(替代静态接口)

时间:2017-03-29 13:33:19

标签: c# class interface static contract

我已经看过这个问题,但标准答案是

  

接口是一种定义与对象交互的契约的方法。

这一切都很好,但是我需要一种方法来让一个类描述自己以允许它的创建。具体来说,我有界面ITicket,它定义了一个负责销售/购买资产的对象。不同实现需要不同的参数。我的反应是做一些看起来像这样的事情:

public interface ITicket{
    static List<TicketOptions> GetAvailableOptions();
}

public class TicketOption{
    public string Label { get; set; }
    public string Type { get; set; }
    public string Default { get; set; }     
}

然后我可以在我的GUI中选择ITicket的实现,并循环参数以创建一个带有整数的IntegerUpDown控件的接口,用于小数的DecimalUpDown控件和用于枚举的下拉框。

唉,C#不会让我失望。我在这里,寻找一个等价物。当然必须有一种模式让我定义一个合约来与没有实例的类进行交互?

编辑:了解更多详情...

我的C#应用​​程序加载IronPython脚本。它扫描/ Scripts文件夹并假设其中的每个python文件都包含一个名为Ticket的类,它实现了ITicket。

我想获得构建接口的每个脚本的可用参数列表。这样开发人员就可以创建python脚本,将其放入一个文件夹中,添加新的复杂行为,而无需重新编译应用程序。

一切都运作良好,除了自动(并且干净地)知道需要什么参数。

0 个答案:

没有答案