我有一个领域特定语言,我想注册可以在里面实例化的对象。
例如,可以执行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参数的有趣特殊情况吗?)
任何人都有一个我可以从哪里开始的例子?
答案 0 :(得分:2)
那么你想和温莎做什么,因为我不确定我看到你要去哪里......
如果您想影响组件在Windsor中的注册方式,例如重命名参数,您可以编写自定义ComponentModel construction contributor来执行此操作。