依赖注入到MVC属性中
本文关键字:属性 MVC 注入 依赖 | 更新日期: 2023-09-27 18:12:58
我正在使用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中,你可以为依赖项指定生活方式,比如"Transient"——我很确定spring.net