Скажем, у вас есть два простых интерфейса и их методы:
ISerializable.Serialize(IValueWriter writer)
IValueWriter.WriteInt32(Int32 value)
IValueWRiter.WriteInt64(Int64 value)
Когда класс реализует ISerializable
, я бы хотел знать, какие вызовы сделаны для IValueWriter
внутри реализации ISerializable.Serialize(IValueWriter writer)
, и сгенерировать граф вызовов из этого. Все это должно быть сделано во время выполнения с использованием отражения и без вызова метода Serialize , и это будет сделано также для классов, которые я не могу контролировать, насколько код внутри них идет.
Пример:
public sealed class SomeObject : ISerializable
{
private readonly Int32 first;
private readonly Int64 second;
public SomeObject(Int32 first, Int64 second)
{
this.first = first;
this.second = second;
}
public void Serialize(IValueWriter writer)
{
writer.WriteInt32(this.first);
writer.WriteInt64(this.second);
}
}
График вызовов будет:
SomeObject -> Serialize | -> IValueWriter.WriteInt32
| -> IValueWriter.WriteInt64
Как можно было бы сделать это красиво и чисто?
То, к чему я действительно стремлюсь, это в основном MethodInfo[]
вызовов, сделанных в конкретной реализации метода интерфейса.