我有一个界面“ISetting”。我有 POCO 类来实现这个空接口,其中包含一些带有一些自动 getter/setter 的属性。
我希望 SimpleInjector 检查每个请求的类型(未显式注册),如果它实现了这个接口,用我提供的方法解决它。
这允许我使用 POCO 对象进行设置,并可以选择使用默认值(来自构造函数)将 POCO 对象绑定到它们自身。这对于单元测试以及关闭设置(使用默认值)非常有用。
这可能吗?方法是什么?
提前致谢!
我有一个界面“ISetting”。我有 POCO 类来实现这个空接口,其中包含一些带有一些自动 getter/setter 的属性。
我希望 SimpleInjector 检查每个请求的类型(未显式注册),如果它实现了这个接口,用我提供的方法解决它。
这允许我使用 POCO 对象进行设置,并可以选择使用默认值(来自构造函数)将 POCO 对象绑定到它们自身。这对于单元测试以及关闭设置(使用默认值)非常有用。
这可能吗?方法是什么?
提前致谢!
这可以使用ResolveUnregisteredType事件获得。例子:
container.ResolveUnregisteredType += (s, e) =>
{
Type type = e.UnregisteredType;
if (typeof(ISetting).IsAssignableFrom(type))
{
// If you need raw performance, there is also
// an overload that takes in an Expression.
e.Register(() =>
{
// Do something useful here. Example:
return Activator.CreateInstance(type);
});
}
};