如何将字符串转换为TEntity并使用此TEntity对象?

时间:2009-10-28 14:41:45

标签: c# linq-to-sql

如何收到字符串值,找到具有相同名称的实体并将此实体用作类型?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果你在一个名为“RipperTest.dll”的程序集中有一个Type 它的命名空间是“RipperTest”,你可以将完全限定的程序集名称作为类型字符串。

在使用此类型之前,如果它不在调用程序集中,则必须确保它的程序集已加载。

在RipperTest.dll的RipperTest命名空间中名为“Ripper1”的类

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();