我有一些类:解析类函数作为参数
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