2012-04-07 12 views
3

内部コンストラクタを持つ抽象クラスであるBCLの型に対して動的プロキシを作成したいと考えています。私は城の動的プロキシを行ってきましたが、パラメータのないコンストラクタは存在しないという例外があります(内部的なものです)。内部コンストラクタを持つ抽象クラス用の動的プロキシを作成する

城でこれを達成する方法はありますか?これを行うことができる他の動的プロキシフレームワークのいずれかがない場合は?これが開発の始まりなので、フレームワークを変更するのは簡単です。

+1

[System.Runtime.Remoting.Proxies.RealProxy](http://msdn.microsoft.com/en-us/library/system.runtime.remoting.proxies.realproxy.aspx)を参照してください。 –

答えて

4

DynamicProxyは、C#で手でできなかったことは何もしません。したがって、DynamicProxyにアクセス可能なコンストラクタを持たない型を含め、構築できない型を継承することはできません。


あなたがアセンブリを所有している場合、あなたが追加することによって、あなたのAssemblyInfo.cs経由DynamicProxyアクセスを提供することができます

重要なことは、注意することは、これはメモリ内のアセンブリによって作成されたリテラル値DynamicProxyGenAssembly2ですDynamicProxyとそれを提供する必要がありますアクセス。

+0

InternalsVisibleTo属性についてはどうですか? –

+3

私は具体的には「ダイナミックプロキシにアクセスできないコンストラクタ」と言いました。 'InternalsVisibleToAttribute'はそれをアクセス可能にします。 –

+0

具体的には(Moq 4.0以上):[assembly:InternalsVisibleTo( "DynamicProxyGenAssembly2")] –

関連する問題