我需要實現某種解決方案,以便在業務邏輯層滿足特定條件時返回錯誤消息。.net可配置的業務錯誤消息
該錯誤消息應該可以配置在文件或表中,如果需要可以在運行時對其進行編輯。
我已經看到它在幾種方式之前完成,它總是以「此錯誤消息是{0}」爲結尾,然後當開發者使用消息時,他們不知道有多少(如果有的話)消息所需的參數。
只是希望利用可能已經完成的事情,我不認爲有一個提供者或任何已經在.net框架中的東西。
我需要實現某種解決方案,以便在業務邏輯層滿足特定條件時返回錯誤消息。.net可配置的業務錯誤消息
該錯誤消息應該可以配置在文件或表中,如果需要可以在運行時對其進行編輯。
我已經看到它在幾種方式之前完成,它總是以「此錯誤消息是{0}」爲結尾,然後當開發者使用消息時,他們不知道有多少(如果有的話)消息所需的參數。
只是希望利用可能已經完成的事情,我不認爲有一個提供者或任何已經在.net框架中的東西。
溶液;
存儲您的錯誤消息與這樣的命名佔位符;
然後,你需要一類,它原始的錯誤消息像「這是一些{大小}問題」在它的構造函數中。
該類將允許開發人員爲每個佔位符指定值。
最後,開發人員會調用一個方法,用指定的值替換佔位符並返回結果。
即
var rawMessage = "this is some {size} problem"; // fetch this from a file, db, or build runtime
var errorMessage = new ErrorMessage(rawMessage); // finds all the placeholders, stores them in a Dictionary<string, string>
errorMessage.SetPlaceholderValue("size", "big"); // sets the {size} placeholder value
var message = errorMessage.BuildErrorMessage(); // replaces placeholders with values and checks no values are missing
// message should look like "this is some big problem";
// this will handle any number of placeholders
爲什麼不讓錯誤信息成爲你錯誤類的一個屬性(假設你有錯誤),允許你的開發者設置他們自己的消息,或許事件包括你自己的一些靜態消息,然後接受一個參數作爲你的string.format函數的第二部分。
似乎會得到解決缺乏瞭解多少參數等
我想嘗試和完成的主要事情是,所有的錯誤消息在應用標準化的,所以我想開發商只能夠從一定數目的預定義的錯誤的選擇消息。 我想我可以有一個錯誤消息枚舉,它定義了可用的類型,並在錯誤類中設置枚舉類型的錯誤,並讓開發人員提供所需的參數 – 2010-06-11 04:47:19
是的,我的意思是,在某些時候它是開發者的責任知道如何報告錯誤。儘可能地使你的代碼儘可能無懈可擊,當開發者沒有提供足夠/正確的信息時拋出「良好」的錯誤,並且每天都這樣稱呼它。你知道,在某些時候你必須相信人們做他們的工作。 :) – 2010-06-11 04:55:52
也,枚舉將是艱難的,因爲它不會持有任何東西,但一個整數值。如果我是你,我會使用ErrorMessage和FieldsRequired屬性創建一個接口/抽象類,然後繼承這些屬性,並強制開發人員傳遞從您的類繼承的消息。這樣你可以根據所選消息的要求檢查參數列表的長度 – 2010-06-11 04:59:28