小编Jag*_*uir的帖子

使用Unity,如何使用通用接口自动调整泛型类,而无需向其注册每种类型

我正在使用Unity和Unity.AutoRegistration.Unity的这一行:

unityContainer.RegisterType(typeof(IAction<>), typeof(Action<>));
Run Code Online (Sandbox Code Playgroud)

有效地将项目中的每个类注册到IAction/Action:

unityContainer.RegisterType<IAction<ObjectA>, Action<ObjectA>>();
unityContainer.RegisterType<IAction<ObjectB>, Action<ObjectB>>();
unityContainer.RegisterType<IAction<ObjectC>, Action<ObjectC>>();
[...]
unityContainer.RegisterType<IAction<UnrelatedObject>, Action<UnrelatedObject>>();
[...]
Run Code Online (Sandbox Code Playgroud)

但是,我只想要注册特定的对象.我该怎么办?我的猜测是为特定的类添加一个自定义属性装饰器.

[ActionAtribute]
public class ObjectB
{ [...] }
Run Code Online (Sandbox Code Playgroud)

并尝试使用Unity.AutoRegistration.这是我被困在的地方:

unityContainer.ConfigureAutoRegistration()
    .Include(If.DecoratedWith<ActionAtribute>,
             Then.Register()
             .As   ?? // I'm guessing this is where I specify
             .With ?? // IAction<match> goes to Action<match>
             )
    .ApplyAutoRegistration();
Run Code Online (Sandbox Code Playgroud)

generics ioc-container unity-container

6
推荐指数
1
解决办法
3555
查看次数

使用FileHelper格式化属性

FileHelpers有一个很好的字段日期转换器:

[FieldConverter(ConverterKind.Date, "MM-dd-yyyy")] 
public DateTime MyDate;
Run Code Online (Sandbox Code Playgroud)

但FieldConverter不适用于属性.我必须处理使用属性的对象,所以我正在寻找这样的东西:

[PropertyConverter(ConverterKind.Date, "MM-dd-yyyy")] 
public DateTime MyDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

如何使用属性执行此操作?

c# csv filehelpers

5
推荐指数
1
解决办法
2125
查看次数

如何在自定义ActionFilterAttribute中访问模型和元数据?

public class CheckMetadataAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        // get model
        // get metadata for each model property
        // set viewdata if metadata X exists
    }
}
Run Code Online (Sandbox Code Playgroud)

老问题是:如何在自定义ModelMetadataProvider中访问ViewData?那是不行的.

c# model-view-controller viewdata metadata asp.net-mvc-3

1
推荐指数
1
解决办法
3249
查看次数