C#根据配置文件动态执行函数的问题

seabluescn 2007-02-25 03:01:44
在一个类里有很多方法(函数),主程序执行时会根据配置文件的内容执行其中的
某一个函数,需要时会修改配置文件让程序调用其他函数,主程序不用修改或编译。
该如何实现?
C#2005 + Win2003
配置文件:
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<MethodrInfo>
<MethodName>Post2013</MethodName> //该行可以经常修改
</MethodrInfo>
</DocumentElement>
...全文
428 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
greennetboy 2007-02-25
  • 打赏
  • 举报
回复
反射更灵活一些
JackLucifer 2007-02-25
  • 打赏
  • 举报
回复
楼上两位正解!
只要在源代码中加入判断条件,根据从配置文件中读入的数据来决定具体执行哪个函数即可。
seabluescn 2007-02-25
  • 打赏
  • 举报
回复
补充一下:不能使用switch-case 或if else-if 结构。
skywind_jk 2007-02-25
  • 打赏
  • 举报
回复
在config中的AppConfig中定义,然后程序中读取出来,在
if(。。){
}
else if(..)
{
}
...
else
{
}
SassyBoy 2007-02-25
  • 打赏
  • 举报
回复
--xml
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="mp3" value="Wayfarer.MediaLibrary.MP3MediaFactory"/>
<add key="wav" value="Wayfarer.MediaLibrary.WavMediaFactory"/>
<add key="rm" value="Wayfarer.MediaLibrary.RMMediaFactory"/>
<add key="mpeg" value="Wayfarer.MediaLibrary.MpegMediaFactory"/>
</appSettings>
</configuration>

--code

string mediaTypeKey = cbbMediaType.SelectedItem.ToString().ToLower();--类型


string mediaTypeValue = ConfigurationSettings.AppSettings[mediaTypeKey].ToString();
IMediaFactory iFactory = (IMediaFactory)Activator.CreateInstance("Wayfarer.MediaLibrary",mediaTypeValue).Unwrap();

IMedia iMedia = iFactory.CreateMedia();
iMedia.Play();
3000sunqin 2007-02-25
  • 打赏
  • 举报
回复
请使用反射

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧