2014-06-26 69 views
0

我有一個很長的C#中的對象列表,我想爲通過MvcScaffolding編寫一系列「單元測試存根」。如果我在C#中的字符串中有類型名稱,如何獲取對象的公共屬性?

我希望能夠加載對象的元數據,並通過對象的公共屬性進行循環。

但是,在上下文中,我不想(並且在某些情況下不能)創建對象的實際副本。

如果我只有字符串中的類型名稱,C#中有讀取對象的公共屬性的方法嗎?

我想在一個T4模板加載性能

比如我想:

<#@ Template Language="C#" HostSpecific="True" Inherits="DynamicTransform" #> 
<#@ assembly name="C:\www\myproject\Web\bin\MyCustomAssembly.dll" #> 
<#@ Output Extension="cs" #> 
<#@ import namespace="MyCustomAssembly" #> 

[TestClass] 
public class <#= Model.PluginName #>ServiceTest 
{ 
    // Example model value from scaffolder script: <#= Model.ExampleValue #> 
    // 
<# 
    Type foo = Type.GetType("MyCustomAssembly."+Model.PluginName + "Service"); 
    if (foo == null) { 
#> 
// <#= "NULL" #> 
<# } else { 
     // Output one generic UnitTest per Property in the object type 
    } #> 

} 

}

+0

'Type.GetType(typeName的).Properties' –

+0

查找C#在谷歌反思。 – Tarik

+0

請參閱http://www.csharp-examples.net/reflection-examples/ – Tarik

回答

2

像這樣:

foreach (PropertyInfo p in Type.GetType(typeName).GetProperties()) 
{ 
    Console.WriteLine(p.Name); 
} 
相關問題