2013-10-30 145 views
0

我在數據庫中創建了一個帶有字段定義的表格,我的意思是TableName,ColumnName。 然後我創建了一個具有表格所有結構的類。 然後我創建了一個Property GetObjectType()如何在對象實例化C#時獲取對象類型。

我想要的是,在實例化的時刻,Property GetObjectType已經通過反射加載了屬性的信息。

我做了這樣的事情。

public partial class MyClass 
{ 
    private Type boType; 
    private string tableName; 
    private string fieldName; 

    public strig TableName{ 
      //Get and set 
    } 

    public strig FieldName{ 
      //Get and set 
    } 

    public Type GetObjectType 
    { 
     get 
     { 
      if(boType == null) 
      { 
       this.boType = Type.GetType("NameSpace" + this.FieldName, NameSpace")); 
      } 
      return this.boType; 
     } 
    } 
} 

我想做

MyClass obj = new MyClass(); 
Type myType = obj.GetObjectType(); //Always null' 

我以正確的方式是?

+3

看來你正在重新實現輪子。爲什麼不直接使用從基類繼承的GetType()方法? – PMF

+0

這不是我的對象的類型。我想從我的兩個屬性(TableName,FieldName) –

+0

的類型哦,這是行不通的。 GetType只返回其元數據真正存在的類型,這意味着在您的代碼中真正定義的類型。你可能想要的是爲你的類型獲取某種標識符。我想你必須手動完成。 – PMF

回答

0

直接使用GetType()。你不必爲它寫一個自定義的GetObjectType()方法。

像下面,

Myclass obj=new MyClass(); 
Type type=obj.GetType(); 
0

每個對象都有它的方法GetType()由於從System.Object

繼承只要做到:

MyClass obj = new MyClass(); 
Type myType = obj.GetType(); 
0

把一個斷點內GetObjectType函數並在執行時在立即窗口中測試您的代碼行。我猜你的類名/命名空間並不完全符合你的期望。