簡體   English   中英

依賴注入mvc屬性

[英]dependency injection in to mvc attributes

我正在使用asp.net mvc4,並有一個表單,我接受用戶的數據。 輸入字段,如姓名,地址等。

我希望能夠使用正常的mvc驗證屬性進行驗證,但是由於站點根據特定參數而變化,我在配置文件中保存每個屬性的正則表達式,該文件在運行時根據用戶(他們的文化等)加載。 我使用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)
    {
        ...
    }
}

您可以通過從ValidationAttribute擴展來創建自定義屬性,並將數據存儲依賴項傳遞給構造函數。 現在將此屬性應用於模型的屬性,並將其注冊到DI容器中。

是的,依賴關系也可以在運行時注入。 在Castle Windsor DI中,您可以為依賴項指定LifeStyles,例如'Transient' - 我很確定spring.net應該有類似的東西

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM