Как я могу преобразовать строку в TEntity и использовать этот объект TEntity? - PullRequest
0 голосов
/ 28 октября 2009

Как я могу получить строковое значение, найти объект с тем же именем и использовать этот объект в качестве типа?

Спасибо !!

1 Ответ

0 голосов
/ 28 октября 2009

Если у вас есть Type в сборке под названием «RipperTest.dll» и его пространство имен - «RipperTest», в котором вы бы указали полное имя сборки в качестве строки типа.

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

для класса Ripper1 в пространстве имен RipperTest в RipperTest.dll

namespace RipperTest
{
    [Serializable]
    public class Ripper1 : RipperBase
    {
    }
}

Type myType = Type.GetType("RipperTest.Ripper1");

, а затем позже использовать этот тип

var newObject = Activator.CreateInstance(myType);

Если ваш исходный экземпляр реализует определенный интерфейс, вы можете привести его к этому интерфейсу вместо возврата объекта.

вроде так:

var newObject = (IRipper)Activator.CreateInstance(myType);

Если вы пытаетесь вернуть список классов из вашей текущей сборки, вы можете сделать что-то вроде этого:

Assembly execAsm = Assembly.GetExecutingAssembly();

Type myType = (from type in execAsm.GetTypes()
                                  where type.Name.Equals("YourTypeNameHere")
                                  select type).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...