【发布时间】:2015-01-22 00:04:13
【问题描述】:
我在 Tasks.xml 中描述了大约 100 个任务。每个任务都有一些字段,例如名称、索引和优先级。在程序中,最终每个任务都由 Class Task 表示。我需要为每个任务添加运行处理程序的能力(有大约 15 种不同的可能处理程序,有些是常见的)。 我决定在 xml 中的每个任务中添加一个 Handler 属性:
<Task Name="Task1" Handler="TaskHandler_A">
并在 Class Task 中添加一个名为 Handler 属性值的方法:
public class Task
{
string name;
// some more fields
void TaskHandler_A()
{
}
// some more handlers
//
void TaskHandler_P()
{
}
}
我应该在某个时间点在程序中运行以处理此任务(每个处理程序方法大约有 10 行代码)。这应该可以解决需求,但是它似乎不够通用,因为代码公开了处理程序的名称。是否有针对此要求的更优雅/通用的解决方案,这样我就不需要在代码中披露处理程序名称?
【问题讨论】:
标签: c# oop generic-programming