Общий тип из строкового значения

Я получил пользовательский класс, который полагается на общий тип T, который должен быть передан. Я знаю только, что это за тип в струнной форме, потому что это так. Я искал вокруг, но, кажется, не могу найти именно то, что мне нужно. Я могу разобрать строковое значение на тип, но мне нужно разобрать его на... что-то, что я могу передать как общий параметр.


Я переписал свою проблему как таковую:

// Classes structure
namespace Mynamespace
{
    public interface IRequest
    {
    }

    public interface IHandler<T> where T : IRequest
    {
        void Handle(T item);
    }

    public class MyRequest : IRequest
    {
    }

    public class MyHandler : IHandler<MyRequest>
    {
        void Handle(MyRequest item)
        {
        }
    }
}

// The info I get, and I know typeString is a IRequest
string typeString = "My";
object requestItem = [insert xml parsing here];

// I then create a handler, to handle the request
Type typeHandler = Type.GetType("Mynamespace." + typeString + "Handler");
var handler = Activator.CreateInstance(typeHandler);

Type typeRequest = Type.GetType("Mynamespace." + typeString + "Request");

// what I want to do:
handler.Handle(requestItem);

Я не могу сделать это, потому что обработчик и requestItem являются только объектами Поэтому мне нужно проанализировать «» обработчик «» на «» typeHandler «», а requestItem на «» typeRequest «»

Изменить: Я понял это, я использовал InvokeMember для доступа к нему.:)

typeHandler.InvokeMember("Handle", BindingFlags.InvokeMethod, null, handler, new[] { requestItem });
-121--1765031- Как показать PopupWindow в специальном месте? Мне нужно показать PopupWindow в одном представлении, показанном на экране. Как вычислить координаты необходимого вида и разместить под ним PopupWindow? Пример кода более чем приветствуется. Спасибо.

Необходимо показать PopupWindow в одном ракурсе , показанном на экране.

Как вычислить координаты требуемого вида и поместить под ним PopupWindow ? Пример кода более чем приветствуется. Спасибо.

27
задан Jonik 6 January 2014 в 21:21
поделиться