1
Использование Castle.DynamicProxy, что является лучшим способом создания прокси-сервера из существующего экземпляра класса?Создать прокси-сервер из существующего объекта
// The actual object
Person steve = new Person() { Name = "Steve" };
// Create a proxy of the object
Person fakeSteve = _proxyGenerator.CreateClassProxyWithTarget<Person>(steve, interceptor)
// fakeSteve now has steve as target, but its properties are still null...
Вот класс Person:
public class Person
{
public virtual string Name { get; set; }
}
Вот класс перехватчика:
public class PersonInterceptor : IInterceptor
{
public void Intercept(IInvocation invocation)
{
Person p = invocation.InvocationTarget as Person;
if (invocation.Method.Name.Equals(get_Name)
{
LoadName(p);
}
}
private void LoadName(Person p)
{
if (string.IsNullOrEmpty(p.Name))
{
p.Name = "FakeSteve";
}
}
}
Наименование - виртуальная собственность. Вопрос обновлен с помощью определения Person. – Aetherix
Хорошо, так что делает ваш перехватчик? – thuri
Идея состоит в том, чтобы ленить загрузку некоторых (виртуальных) свойств. – Aetherix