2010-06-11 14 views
3

我需要實現某種解決方案,以便在業務邏輯層滿足特定條件時返回錯誤消息。.net可配置的業務錯誤消息

該錯誤消息應該可以配置在文件或表中,如果需要可以在運行時對其進行編輯。

我已經看到它在幾種方式之前完成,它總是以「此錯誤消息是{0}」爲結尾,然後當開發者使用消息時,他們不知道有多少(如果有的話)消息所需的參數。

只是希望利用可能已經完成的事情,我不認爲有一個提供者或任何已經在.net框架中的東西。

回答

0

溶液;

存儲您的錯誤消息與這樣的命名佔位符;

  • 「這是一個錯誤{名1}。Andkg kfkjgkf {名2}」
  • 「這是一些{大小}問題」

然後,你需要一類,它原始的錯誤消息像「這是一些{大小}問題」在它的構造函數中。

該類將允許開發人員爲每個佔位符指定值。

最後,開發人員會調用一個方法,用指定的值替換佔位符並返回結果。

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 
0

爲什麼不讓錯誤信息成爲你錯誤類的一個屬性(假設你有錯誤),允許你的開發者設置他們自己的消息,或許事件包括你自己的一些靜態消息,然後接受一個參數作爲你的string.format函數的第二部分。

似乎會得到解決缺乏瞭解多少參數等

+0

我想嘗試和完成的主要事情是,所有的錯誤消息在應用標準化的,所以我想開發商只能夠從一定數目的預定義的錯誤的選擇消息。 我想我可以有一個錯誤消息枚舉,它定義了可用的類型,並在錯誤類中設置枚舉類型的錯誤,並讓開發人員提供所需的參數 – 2010-06-11 04:47:19

+0

是的,我的意思是,在某些時候它是開發者的責任知道如何報告錯誤。儘可能地使你的代碼儘可能無懈可擊,當開發者沒有提供足夠/正確的信息時拋出「良好」的錯誤,並且每天都這樣稱呼它。你知道,在某些時候你必須相信人們做他們的工作。 :) – 2010-06-11 04:55:52

+0

也,枚舉將是艱難的,因爲它不會持有任何東西,但一個整數值。如果我是你,我會使用ErrorMessage和FieldsRequired屬性創建一個接口/抽象類,然後繼承這些屬性,並強制開發人員傳遞從您的類繼承的消息。這樣你可以根據所選消息的要求檢查參數列表的長度 – 2010-06-11 04:59:28