因此,我为 C# 上的特定需求编写了一个服务器,现在我正在寻找舒适的方法来管理这个服务器。起初它是一个简单的基于 Web 的管理器,但这不是可扩展的解决方案,因为我的服务器架构每天都在变化。所以现在我明白了,最舒适和可扩展的解决方案是命令行界面。但是,我根本不想使用原始的 IF\CASE(C# 应用程序中的命令行界面)结构。所以我的问题是:
例如我有一个服务器类:
public class Server
{
private int succes_interval;
private int fail_interval;
private int threshold;
private int failed_requests;
private int request_timeout;
private int update_timer;
private string updt_path;
private DateTime start_time;
private bool snmp_enabled;
private int snmp_port;
[XmlIgnore()]
public string Version { get { return Assembly.GetEntryAssembly().GetName().Version.ToString(); } }
[XmlIgnore()]
public string Path { get { return Assembly.GetEntryAssembly().Location; } }
[XmlIgnore()]
public string ServerName { get { return System.Environment.MachineName.ToLower(); } }
[XmlIgnore()]
public int SuccessInterval { get { return succes_interval; } }
public void SetSuccessInterval(int interval) { succes_interval = interval; }
[XmlIgnore()]
public int FailInterval { get { return fail_interval; } }
public void SetFailInterval(int interval) { fail_interval = interval; }
[XmlIgnore()]
public int FailThreshold { get { return threshold; } }
public void SetFailThreshold(int thresh) { threshold = thresh; }
[XmlIgnore()]
public int FailedRequests { get { return failed_requests; } }
public void SetFailedRequests(int value) { threshold = value; }
[XmlElement("RequestTimeout")]
public int RequestTimeout { get { return request_timeout; } set { request_timeout = value; } }
[XmlIgnore()]
public int UpdateCheckInterval { get { return update_timer; } set { update_timer = value; } }
[XmlElement("UpdatePath")]
public string UpdatePath { get { return updt_path; } set { updt_path = value; } }
[XmlElement("SNMPEnabled")]
public bool SNMPEnabled { get { return snmp_enabled; } set { snmp_enabled = value; } }
[XmlElement("SNMPPort")]
public int SNMPPort { get { return snmp_port; } set { snmp_port = value; } }
}
我想通过命令“服务器阈值 50”在运行时设置这个变量。不管如何在 (Telnet\ssh\http\whateverprotocol) 中传递命令。或者例如命令“show server”列出了这个对象中的所有变量。
我知道它必须是一种树方法,但是有人可以给我一个实现它的方向。