我有一些類:解析類函數作爲參數
public class clsAnimal
{
public int ID { get; set; }
public string Strain { get; set; }
}
public class clsHybridom
{
public int ID { get; set; }
public string Haplo { get; set; }
}
這些類實例化到會話:
Session["clsAnimal"] = new clsAnimal();
,並像訪問(如果存在更好的方法,請讓我知道):
((clsAnimal)Session["clsAnimal"])
有很多這樣的類,我有一個開關,並通過請求實例所需的類。實例類應該被解析爲MyFunction。
有一個在整個項目和使用的這個類應該是我的功能MyFunction的
但可惜功能的公共靜態類!我不知道如何將這些類解析成函數MyFunction的
我的嘗試是這樣的:
ASMX:
object ReturnObject;
Session["clsAnimal"] = new clsAnimal();
ReturnObject = Activator.CreateInstance(((clsAnimal)Session["clsAnimal"]));
return clsDataProc.MyFunction(ReturnObject);
公共靜態類:
public static string MyFunction(object o)
{
return Do_Some_Evil_Things_With_Parsed_Class();
}
顯然這不會發生,因爲:
- 無法從 'clsAnimal' 轉換爲 '的System.Type'
- 爲 'System.Activator.CreateInstance(System.Type的,params對象[])' 最好的重載的方法匹配具有 一些無效參數
長話短說:如何解析實例類到公共靜態字符串MyFunction?
你爲什麼不通過將typeof( clsAnimal)作爲你的xmlserializer的第二個參數? –
爲什麼不停止用'cls'前綴所有類?成爲班級並不是一件特殊的事情,你需要爲所有班級加上前綴,只是爲了提醒你他們是班級。 –
同意JohnSaunders與現代IDE的類型安全編程語言匈牙利符號是荒謬的,甚至更多的**類型** ... – Bas