原来是用delphi写的代码,现在需要移至C#上,咱是新手刚上路
delphi中如果published了某个属性,可以通过PropType(Obj, strPropName)函数来得到属性的类型,GetStrProp函数来得到某个属性值,不知在c#中应该如何处理,有相关代码最好原始需求:
需要将xml文件中对应节点的值直接转换到某个对象的相应属性中,考虑到扩展性,需要做成动态的
如xml文件格式
<Data><usrid><usrid>1<usrno>test</usrno></Data>
某个业务类声明
TUsr
public int usrid;
public string usrno;
...假设这么调用
TUsr oUsr = new TUsr();
oUsr.loadfromxml(); //在这里跟据nodename, nodevalue可以获取xml中的值动态,
//调用后ousr.usrid= 1 ousr.usrno="test"不知在C#里类似的处理应该如何实现,先谢了
delphi中如果published了某个属性,可以通过PropType(Obj, strPropName)函数来得到属性的类型,GetStrProp函数来得到某个属性值,不知在c#中应该如何处理,有相关代码最好原始需求:
需要将xml文件中对应节点的值直接转换到某个对象的相应属性中,考虑到扩展性,需要做成动态的
如xml文件格式
<Data><usrid><usrid>1<usrno>test</usrno></Data>
某个业务类声明
TUsr
public int usrid;
public string usrno;
...假设这么调用
TUsr oUsr = new TUsr();
oUsr.loadfromxml(); //在这里跟据nodename, nodevalue可以获取xml中的值动态,
//调用后ousr.usrid= 1 ousr.usrno="test"不知在C#里类似的处理应该如何实现,先谢了
解决方案 »
- WEBBROWSER常出现“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”
- C# 连接access查询 在textboox显示总是错误 菜鸟求教!!
- 如果 聚焦一个编译过的exe 程序窗体上的 文本框,并且自动填写内容呢?^_^
- 想自己做个代码生成器!
- 关于HttpWebRequest模拟Web登陆和更新的WinForm程序问题,郁闷好几天了!请求大家帮忙.
- 一个有关System.Type.GetMethod()方法的问题
- winform里怎么在textbox或richtextbox里输入的同时显示输入的字符数
- 哪位大虾分析一下public,internal,private,protected,protected internal的区别,谢谢
- SQL Compact 3.5 使用规则
- C#怎么在word菜单栏添加一个自定义菜单?
- 怎么得到中文Ascii码对应的字符
- C#中 请问怎么将一个byte[] 数组转化为string 对象? 谢谢
[Serializable]
public class userinfo
{
public int userid;
public string userno;
}//Save it into xml file
userinfo myData = new userinfo();
BinaryFormatter Bf = new BinaryFormatter();
FileStream fs = new FileStream("DataFile.dat", FileMode.Create);
Bf.Serialize( fs,myData);//Read it from xml file
FileStream fs = new FileStream("DataFile.dat", FileMode.Open);
BinaryFormatter Bf = new BinaryFormatter();
userinfo myData = Bf.Deserialize( fs ) as userinfo;
if( myData != null )
{
//Access its data here
}
首先谢谢您的热心回复,刚才我查了一下MSDN,大概了解serialize 和 Deserialize的用法,感觉这也是一种解决方法,但用这种方式,还是无法达到我所说的"动态指定"的效果.
因为serialize 和Deserialize,应该就是按顺序把属性值存储起来(按我的理解),如果增加或者删除了某个属性,那么原有的.dat文件应该无法读取出来,而且我用editplus打开了存储的.dat文件,格式上和xml文件还是相差比较大.考虑用xml格式处理,就是为了尽可能地灵活,方便扩展和修改,如虽然类里面声明了两个属性,但传回来的xml格式也可能只包含了其中一个属性值
<Data><usrid>1</usrid></Data>
这时就意味着usrno属性为空字符串(有时为了减少传输大小,需要这么处理)
http://www.cnblogs.com/fineboy/archive/2005/09/02/228684.aspx