2014-10-28 62 views
1

使用Enterprise Architect的附加組件(EA)我需要獲取測試在EA中可以使用的所有不同類型。如何在界面中獲取屬性的類型c#

通過這個,我的意思是EA命名空間中的Test類繼承自IDualTest接口,該接口具有名爲「Type」的字符串屬性的get/set方法。作爲標準EA有三種不同的類型(標準,迴歸,負載),但可以添加自己的類型。我需要獲得所有這些類型。

我相信這是可能的反思,但這不是我最強的網站,所以我真的可以在這裏使用一些幫助。 如果需要更多信息,請發表評論。

編輯:

我有下面的代碼:

List<string> typeList = new List<string>(); 

      foreach (string type in Test.Types) 
      { 
       typeList.Add(type); 
      } 

上面的代碼是不是可編譯但我希望它說明了我的需求。

foreach (Test t in elm.Tests) 
     { 
      string type = t.Type; //It is this type that can be the standards from EA and your own added types 
     } 

// - 輸出

//標準

//迴歸

//加載

// CustomType1

// CustomType2

+0

考慮嘗試一下,看看你卡在哪裏......在這一點上,這個問題很可能應該是許多「如何通過反射獲取類型/屬性/字段」的重複... – 2014-10-28 15:15:16

+0

嗯,我會嘗試用一些代碼更新。但我真的不知道從哪裏開始,這是我的問題。對那些沒有留下評論而低估的人來說,Thx就會愛上那些傢伙! – 2014-10-28 15:22:46

+0

關於「downvote without comment」 - 查看http://meta.stackoverflow.com/questions/267498/getting-downvoted-yet-no-comment-as-to-why(以及來自META討論的鏈接)。 – 2014-10-28 15:28:46

回答

3

這裏沒有用處。 這些值存儲在EA數據庫中。 查詢API的「正確」的方法是使用Repository.GetReferencType()這樣的:

EA.Reference testTypes = Repository.GetReferenceList("Test"); 
for (short i = 0; i < testTypes.Count; i++) 
{ 
    string testType = testTypes.GetAt(i); 
} 

如果你需要更多的則只有名稱就可以直接查詢數據庫: Repository.SQLQuery("select * from t_testtypes")

+0

謝謝,這個工作! – 2014-10-29 07:14:02

+0

是否可以通過代碼添加testType?我試過Repository.SQLQuery(「INSERT INTO t_testtypes VALUES(Default)」);但它不起作用。它也不像EA.Reference有一個AddNew()。 – 2014-10-30 13:12:47

+1

@ n.Stenvang是的,你可以,但你必須使用'Repository.Execute(「Insert into t _...」)' – 2014-10-30 16:02:59

相關問題