我已经看过这个问题,但标准答案是
接口是一种定义与对象交互的契约的方法。
这一切都很好,但是我需要一种方法来让一个类描述自己以允许它的创建。具体来说,我有界面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脚本,将其放入一个文件夹中,添加新的复杂行为,而无需重新编译应用程序。
一切都运作良好,除了自动(并且干净地)知道需要什么参数。