English 中文(简体)
获取类实例的母性
原标题:Get parent of class of instance
  • 时间:2012-05-23 07:07:27
  •  标签:
  • c#

我有以下课:

public class POCOConfiguration : EntityTypeConfiguration<POCO>
{
    public POCOConfiguration()
    {

    }
}
POCOConfiguration instance = new POCOConfiguration();

如何从“强势”中获取类型 POCO ?

谢谢 谢谢

最佳回答
instance.GetType().BaseType.GetGenericArguments()[0]
问题回答

另一个答案很简单,就是 instance. GetType (). BaseType 返回母类的底类类型 。

instance. GetType (). BaseType. GetGenericArguments () [0] 可以提出例外 。

看看:http://msdn.microsoft.com/en-us/library/b8ytshk6.aspx

有一个例子说明如何获得该类型(STeps 3、4和5)

如果该类有一个无光度的构造器,那么您可以写:

public class POCOConfiguration : EntityTypeConfiguration<POCO> where POCO : new()
{     
    public POCOConfiguration()
    {
        var poco = new POCO();
    } 
} 

否则您必须使用反射, 见 < a href=" "http://msdn.microsoft.com/ en- us/library/ System. Activator.aspx" rel="nofollow" > Activator class.

如果我理解你正确的话,你想得到POCO的类型。然后宣布一种方法,然后把它称为以下方法;

public Type GetTypeOfPoco<T>(EntityTypeConfiguration<T> entityTypeConfiguration)
{
    Type t = typeof(T);
    return t;
}

称它为;

Type t = GetTypeOfPoco(instance);

选中此项

POCOConfiguration instance = new POCOConfiguration();
Type t = instance.GetType().BaseType.GetGenericArguments()[0];
//here t is the type of POCO

将会有效...





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签