既存のリストを使用して Castle Dynamic Proxy CreateClassProxyWithTarget を使用しています。基本的に、リスト インデクサーに対して行われる呼び出しをインターセプトしたいと考えています。
この目標を達成するために多くの組み合わせを試しましたが、作成されたプロキシが空のリストを返すたびに。
例えば :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Castle.DynamicProxy;
namespace DP
{
class Program
{
private static readonly ProxyGenerator _generator = new ProxyGenerator(new PersistentProxyBuilder());
static void Main(string[] args)
{
ListString ls = new ListString();
ls.Add("hello");
List<string> ls2 = (ListString)_generator.CreateClassProxyWithTarget(typeof(ListString), ls, new Interceptor());
var x = ls2[0];
}
}
public class ListString : List<String>
{
public ListString() : base() { }
public ListString(IEnumerable<String> strings) : base(strings) { }
}
}
助けてください!それは私を怒らせています!Castle 3.2 と 2.5 を試しましたが、どれも動作しないようです。「通常の」オブジェクトで良い結果を得ることができます。