我在寫一個連接到MS SCOM服務器的小工具,並添加了用於監視警報的子集。如何,我想保存連接和訂閱設置somwhere /一些如何。這裏是粗糙的結構在.NET C中保存複雜的用戶設置#
public class ConnectionManager
{
...
public BindingList<Connection> Connections // All the connection we know
...
}
然後,我們有連接。 Basicly該級撲救像服務器名稱,用戶域名所需的連接領域,連接到服務器,保持連接活着等等等等
public class Connection
{
...
public string Name; // the name of this connection
public string ServerName; // the scom server name
public string UserDomain; // the domain, NETBIOS or FQDN
public BindingList<Subscription> Subscriptions; // The subscriptions for this connection
...
}
最後,連接類有警報指標分析。警報標準基本上是某種正則表達式。這些目前只是「擴展」(只是一個字符串),但我要構建簡單的表達式,這些表達式將隨時隨地構建。它看起來像這樣
public class Subscription
{
...
public string ExtededExpression; // if not empty, use this
public BindingList<CriteriaOperator> SimpleOperators; // otherwhise build a regular expression from this stuff
...
}
與另一個子
public class CriteriaOperator
{
...
public string Field; // The field, g.g. LastModified
public LogicalOperator Operator; // The logical operator, e.g. LIKE
public string CompareFieldTo; // A regular expression, e.g. "%SQL%"
...
}
現在我的問題:你認爲什麼是保存這種結構的最佳方式?我是.NET新手,所以我不確定:使用應用程序設置?或者使用XML序列化器對此結構進行序列化/反序列化?或者寫一些包裝類,然後使用XML序列化程序?或者也許還有其他方法?
感謝您的幫助!
在我看來,最好的辦法是創建自己的自定義配置節http://msdn.microsoft.com/en-us/library/2tw134k3.aspx –
實際上取決於在場景中。我不同意Yevgeniy使用配置部分,因爲它聽起來像這可能是一個「公共用戶設置」...(我知道你可能只有一個用戶公關安裝,但仍然)...序列化通常是一個體面的方法海事組織。 – Jens