Morning StackOverflow社区,
关于这个问题我已经咬了几天,现在也许有人有个主意。
我有一个包含Task对象的BaseClass(“TaskBase”)。随着应用程序的增长,会有很多这些TaskBase类。我无法序列化它,因为涉及任务(至少我认为这不可能)。
public class TaskBase
{
public TaskImpactLevel ImpactLevel { get; set; }
public RequiredOnlineStatus RequiredOnlineStatus { get; set; }
public TaskType Type { get; set; }
public TaskTarget Target { get; set; }
private Task _task;
public Task Task
{
get
{
if (_task == null)
_task = new Task(() => Execute());
return _task;
}
set
{
_task = value;
}
}
public string Name { get; set; }
public string Description { get; set; }
public ParameterCollection Parameters { get; set; }
public TaskBase()
{
Name = "Default Name - please change it in the subclass";
Description = "Default desciption - please change it in the subclass";
Parameters = new ParameterCollection();
}
public virtual void Execute()
{
throw new NotImplementedException();
}
}
TaskBase对象最终会在List中,并通过WCF传递并在客户端执行。
现在我觉得我在Code中预定义了它们可以正常工作
TaskBase t = new TaskBase();
t.Name = "Dummy Task";
t.ImpactLevel = TaskImpactLevel.High;
t.Parameters.Add(new TaskParameterViewModel() { DisplayName = "Username", Key = "User", Value = new UserModel() });
t.Target = TaskTarget.None;
t.Task = new Task(() => { Console.WriteLine("Hello"); });
t.Type = TaskType.Executable;
但是我真的不喜欢在一个课程中看到数百个这些定义的事实,我想以某种方式组织它们但我无法弄清楚如何......
也许部分类可以做到这一点?(不应该减慢应用程序的速度,因为它只是编译成一个文件吗?)
也许是某种经理类我在哪里注册我的任务?
也许有办法序列化一个我不知道的任务?