c#4的动态特性
1.调用COM组件:
Type type = Type.GetTypeFromProgID("VisualPHD.Data");
dynamic phd = Activator.CreateInstance(type);phd.HostName = "192.168.53.186";
2. 反射调用dotNet类Type type = Type.GetType("ConsoleApplication1.Test");
dynamic t = Activator.CreateInstance(type);t.Print("你好!");
3. 使用PInvoke更简单
下载开源组件http://code.google.com/p/dynamicdllimport/
可以使用下面方面调用非托管dll,包括Windows api和自己开发的c格式dll
dynamic user32 = new DynamicDllImport("user32.dll", callingConvention : CallingConvention.Winapi);
user32.MessageBox(0, "Hello World", "Platform Invoke Sample", 0);dynamic asmproject = new DynamicDllImport("asmproject.dll");
int value = asmproject.add<int>(3, 4);
Console.WriteLine(value);dynamic sdl = new DynamicDllImport("SDL.dll", CharSet.Ansi);
Sdl.SDL_Rect rect = new Sdl.SDL_Rect(
0,
0,
(short)width,
(short)height);
int result = sdl.SDL_FillRect<int>(rgbSurfacePtr, ref rect, 0);Sdl.SDL_Event evt;
while (sdl.SDL_WaitEvent(out evt) != 0)
{
if (evt.type == Sdl.SDL_QUIT)
{
break;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
2007-03-15 在Oracle中模拟ms Sql 中的自动增加字段