我正在使用asp.net mvc4,並有一個表單,我接受用戶的數據。輸入字段如名稱,地址等依賴注入到mvc屬性
我希望能夠驗證這種與正常的mvc驗證屬性,但由於網站根據某些參數的不同,我舉行每個屬性的配置文件中的每個屬性的正則表達式基於用戶(他們的文化等)在運行時加載。我正在使用spring.net進行依賴注入。
是否有可能在運行時執行依賴注入到自定義屬性,如果是這樣,如何?
我正在使用asp.net mvc4,並有一個表單,我接受用戶的數據。輸入字段如名稱,地址等依賴注入到mvc屬性
我希望能夠驗證這種與正常的mvc驗證屬性,但由於網站根據某些參數的不同,我舉行每個屬性的配置文件中的每個屬性的正則表達式基於用戶(他們的文化等)在運行時加載。我正在使用spring.net進行依賴注入。
是否有可能在運行時執行依賴注入到自定義屬性,如果是這樣,如何?
您可以通過擴展ValidationAttribute
來創建自定義屬性,並將數據存儲區依賴項傳遞給構造函數。現在將此屬性應用於您的模型的屬性,並將其註冊到您的DI容器中。
是的,依賴關係也可以在運行時注入。在Castle Windsor DI中,你可以指定LifeStyles作爲'Transient'之類的依賴關係 - 我很確定spring.net應該有類似的東西。
屬性方法中的值限於常量值。例如字符串,數字和typeof
。
你可以做什麼,從RegularExpressionAttribute
派生一個新的屬性,將在構造函數中找到一個關鍵的正則表達式。
[MyRegularExpression("Field1")]
public string Field1 { get; set; }
屬性:
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
public class MyRegularExpressionAttribute : RegularExpressionAttribute
{
public MyRegularExpressionAttribute(string key)
: base(FindRegex(key))
{ }
private static string FindRegex(string key)
{
...
}
}