使用自定义类解析参数

时间:2010-07-02 09:42:36

标签: castle-windsor

我有一个领域特定语言,我想注册可以在里面实例化的对象。

例如,可以执行httprequests的类。

[IoC("HttpRequest", typeof(DslScriptObject), IoCAttribute.IoCLifestyleType.Transient)]
internal class WebRequestDslObj : DslScriptObject
{
    [DslNew]
    public WebRequestDslObj() : this(null, null)
    {}
    [DslNew]
    public WebRequestDslObj([DslParam("uri")]string uristring, [DslOptionalParam("contenttype")] string contenttype) : this(uristring, null)
    {}
}

然后我有一个类将我的dsl数据类型中的类型映射到c#数据类型(如果它有任何区别,我将它们作为IList),如果我不使用Castle来实例化对象,这样就行了。

但是只要我想使用IoC自动调整各种类型,那么我就不知道如何处理构造函数。我试着看一下设置CustomComponentActivator,但我无法找到任何好的示例或文档。这是一条可行的道路吗? (并且我能够解决有关null参数的有趣特殊情况吗?)

任何人都有一个我可以从哪里开始的例子?

1 个答案:

答案 0 :(得分:2)

那么你想和温莎做什么,因为我不确定我看到你要去哪里......

如果您想影响组件在Windsor中的注册方式,例如重命名参数,您可以编写自定义ComponentModel construction contributor来执行此操作。