3

キャッスルウィンザーにファクトリを実装するためにこのコードを試しましたが、この問題のタイトルに示されているように、例外がスローされます。私はここでドキュメントの例に従っています。plzは私が間違っているところを指摘します。

using System;
using System.Windows.Forms;
using Castle.Facilities.TypedFactory;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Castle.MicroKernel.Registration;
using Castle.Windsor;

namespace AsFactoryImplementation
{
interface IDummyComponnentFactory
{
    IDummyComponnent creat();
    void Relese(IDummyComponnent factory);
}

interface IDummyComponnent
{
    void show();
}

class DummyComponnent:IDummyComponnent
{
    public void show()
    {
        Console.WriteLine("just testing this for better performance");
    }
}

class Program:WindsorContainer
{
    static void Main(string[] args)
    {
        var container = new WindsorContainer();
        container.AddFacility<TypedFactoryFacility>();

        container.Register(Component.For<IDummyComponnent>().ImplementedBy<DummyComponnent>().Named("FirstConnection").LifeStyle.Transient
            ,Component.For<IDummyComponnentFactory>().AsFactory());

        var val = container.Resolve<IDummyComponnent>();
        val.show();

        var val2 = container.Resolve<IDummyComponnentFactory>();

    }
}

}

4

1 に答える 1

10

内側の例外はそれを十分に説明していませんか?

タイプAsFactoryImplementation.IDummyComponnentFactoryはDynamicProxyには表示されません。アクセスできないタイプのプロキシを作成できません。タイプをパブリックまたは内部にし、アセンブリに [assembly: InternalsVisibleTo(InternalsVisible.ToDynamicProxyGenAssembly2)] 属性のマークを付けます。

于 2013-02-09T00:55:52.207 に答える