gpt4 book ai didi

c# - 温莎城堡 : XML Configuration for Dynamic Proxy without a Target

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:38 24 4
gpt4 key购买 nike

情况:我有一个接口(interface),比如

public interface ITestClass
{
string StringElement { get; }
}

它有一个实现:

public class TestClassImplementor :
ITestClass
{
public string StringElement
{
get { return "AAA"; }
}
}

我确实有一个创建实现实例的工厂:

    public class TestClassFactory
{
public ITestClass Create()
{
return new TestClassImplementor();
}
}

我希望能够使用 CaSTLe Windsor 配置文件 (XML) 解析实现,但同时不为接口(interface)配置实现。

为什么需要这个:解析(网络)服务。我确实有一个(网络)服务接口(interface),但我不访问实现,因为它在另一个组件上。我希望能够简单地键入 MyCastleUtility.Resolve<ITestClass>()并获得准备好的网络服务。我想使用 CaSTLe Windsor 配置文件 (XML) 来配置我尝试访问的服务。

问题:如果我不能访问实现,我就不能在配置文件中配置它。

到目前为止我尝试过的:1) 工厂。

        <component id="mycompfactory"
type="MyTestProject.TestClassFactory, MyTestProject"/>

<component id="mycomp"
type="MyTestProject.ITestClass, MyTestProject"
factoryId="mycompfactory" factoryCreate="Create" />

我确实得到了:CaSTLe.MicroKernel.ComponentRegistrationException:类型 MyTestProject.INewTestClass 是抽象的。因此,不可能将其实例化为 MyTestProject.INewTestClass 服务的实现

2) 代理。当试图找到一种方法来配置“必须为‘ITestClass’接口(interface)创建代理”时碰壁了。

目标:配置 CaSTLe Windsor 以创建接口(interface)实现,而无需直接访问实现接口(interface)的类。

非常感谢您的帮助,明道加斯

最佳答案

对于工厂方法:

  1. 您是否还在配置中配置了 FactoryFacility?

  2. 在你的“mycomp”中,我认为你想使用“服务”而不是“类型”:

<component id="mycomp" service="MyTestProject.ITestClass, MyTestProject" factoryId="mycompfactory" factoryCreate="Create" />

关于c# - 温莎城堡 : XML Configuration for Dynamic Proxy without a Target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3465646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com