Linux
Nginx
数据库
Python
PHP
C#
.NET
WPF
MAUI
Blazor
WinForm
帝国CMS
AKCMS
Typecho
织梦CMS
Visual Studio
Windows
Mac
Web前端
数据采集
运营
产品
摩托车
电影
杂事
这天遇到一个需求,动态抓取某个网站的内容,需要一个页面一个页面的保存,网站页面接口是不同的Json格式,需要把不同的Json转换成各自的类,针对各个类来实现方法和数据提取,实现方式是把转换的类名称写到配置文件,通过配置文件来动态调用类,这就存在一个问题,读取的配置文件是字符串,怎么转换成类对象呢?
.
实现方式可以通过反射实现,代码如下:
//循环读取配置文件的类名,这里Test是从配置文件里读取的
Type t = Type.GetType("Test");
//创建实例对象
var obj = t.Assembly.CreateInstance("Test");
//动态从网站抓取出的json,模拟过程,这里就不列出具体代码了
var json= "{test:\"hidotnet开发跳槽\"}";
//获取方法
MethodInfo method = t.GetMethod("TestFun");
//调用方法
method.Invoke(obj, new object[] {json});
//测试的类型
class Test
{ //处理Json的方法
public void TestFun(string name)
{
Console.WriteLine("要处理的Json:" + name);
}
}
上面通过反射实现了动态读取类来处理数据,不用switch来分支判断了,这样就避免了代码的重复和臃肿。大家还有啥好的方法,欢迎留言讨论。
本文作者:翔星
信息来源:
公众号 DotNet开发跳槽
所属分类:
C#
上一篇:
C#最简单快速写本地日志方法
下一篇:
C#多线程:读写锁
Power by Typecho. Theme by Puma. Written by 董川民-
独立开发者
渝ICP备16006207号-2
渝公网安备 50011202503233号
友情链接: