我在c#中有一个方法可以动态构建xml。
但是,在运行时之前我不会知道具体的元素/属性。
当我不知道数据类型,名称,数值或金额是多少时,如何声明参数?
答案 0 :(得分:2)
您正在寻找params个关键字。或者是你? :)
答案 1 :(得分:1)
您可以对所有参数使用System.Object
,因为它是所有其他类型的基类。然后,您可以使用GetType()
方法找出实际声明的类型,并适当地处理该值。
e.g。
if (myParam.GetType() == typeof(Int32))
{
// treat value as integer ...
int val = (int)myParam;
}
或者您可以使用语法
if (myParam is Int32)
{
// treat value as integer ...
int val = (int)myParam;
}
else if (myParam is String)
{
string val = myParam.ToString();
}
等
答案 2 :(得分:0)
另一种选择是使用泛型。如果您需要对可传入的类型设置约束,这将非常有用:
public void BuildXml<T>(T obj)
{
// do work
}
或者,如果您期待一组对象:
public void BuildXml<T>(IEnumerable<T> items)
{
// do work
}
然后您可以使用反射来获取所需的相关数据。