У меня есть словарь, который имеет тип
Словарь [string, handler_func]
где
handler_func является делегатом типа
public delegate void HANDLER_FUNC(object obj, TcpClient client);
теперь у меня есть класс атрибута, подобный
[AttributeUsage(AttributeTargets.Method)]
public class MessageHandlerAttribute : Attribute
{
public MessageHandlerAttribute(string s1, HANDLER_FUNC hf)
{
s1 = name;
msgtype = hf;
}
private string name;
public string HandlerName
{
get { return name; }
set { name = value; }
}
private HANDLER_FUNC msgtype;
public HANDLER_FUNC MessageName
{
get { return msgtype; }
set { msgtype = value; }
}
}
Основная идея заключается в том, что я применяю этот атрибут к методу в классе и где-то использую отражение, чтобы заполнить словарь выше
проблема в том, что если этот метод не является статическим, атрибут не работает
так
[MessageHandlerAttribute("HandleLoginResponse",HandleLoginResponse)]
private void HandleLoginResponse(object obj, TcpClient client)
вызывает потребность объекта в предмете
Итак, каковы мои варианты (я не хочу, чтобы метод обработчика был статическим)
Спасибо