.config文件中的DynamicParameters

时间:2011-07-08 11:55:15

标签: castle-windsor arguments

我遇到的情况是,我需要做类似以下的事情:

public static class mystaticclass
{
    public static string filename { get; private set; }

    static mystaticclass()
    {
        filename = "C:\\test.test";
    }
}

public class myclass
{
    public string filename;
    public myclass(string filename)
    {
        this.filename = filename;
    }
}


[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        var container = new WindsorContainer().Install(Configuration.FromXmlFile("Windsor.config"));
        container.Register(Component.For<myclass>()
            .DynamicParameters((k, d) =>
                {
                    d["filename"] = mystaticclass.filename;
                }));

        var tmp=container.Resolve<myclass>();
    }
}

但是我非常想在.config文件中配置它,而不是在代码中....这可能吗? ......可能不是......所以什么是一个很好的替代解决方案

N.B。 'mystaticclass'不是我能够改变的东西,但是我希望能够在某些配置中使用mystaticclass2.filename ....

TIA

SORN

1 个答案:

答案 0 :(得分:0)

不,不可能使用XML,主要是因为动态参数是......良好的动态,而且这是无法用XML表达的东西。你的案例看起来很静态,所以猜猜你是否真的认为这是你想要的,你可以很容易地通过IContributeComponentModelConstruction

实现对它的支持