焦作网站建设公司哪家好wordpress最大上传2m

张小明 2026/3/12 12:52:36
焦作网站建设公司哪家好,wordpress最大上传2m,苏州做网站比较好的公司,wordpress 设置导航C# 中的反射#xff08;Reflection#xff09; 是 .NET 提供的一种强大机制#xff0c;允许程序在运行时检查、分析和操作类型#xff08;类、结构、接口、方法、属性等#xff09;的元数据#xff0c;并动态创建对象、调用方法、访问字段或属性。它主要通过 System.Refl…C# 中的反射Reflection是 .NET 提供的一种强大机制允许程序在运行时检查、分析和操作类型类、结构、接口、方法、属性等的元数据并动态创建对象、调用方法、访问字段或属性。它主要通过System.Reflection命名空间中的类实现。一、反射的核心用途动态加载程序集Assembly获取类型信息Type创建对象实例Activator / ConstructorInfo调用方法MethodInfo.Invoke读写属性或字段PropertyInfo / FieldInfo检查特性Attribute实现插件系统、ORM、序列化框架等二、基础使用步骤1. 获取 Type 对象// 方法1通过 typeofTypetype1typeof(string);// 方法2通过对象的 GetType()stringstrhello;Typetype2str.GetType();// 方法3通过类型全名从 Assembly 加载Typetype3Type.GetType(System.String);// 方法4从程序集加载AssemblyassemblyAssembly.LoadFrom(MyLibrary.dll);Typetype4assembly.GetType(MyNamespace.MyClass);注意Type.GetType(...)只能加载当前应用域中已加载或 mscorlib/System 中的类型跨程序集需指定完整名称含 Assembly 信息。2. 创建对象实例使用Activator.CreateInstanceTypetypetypeof(Person);objectobjActivator.CreateInstance(type);// 调用无参构造函数// 带参数构造objectobj2Activator.CreateInstance(type,Alice,30);使用ConstructorInfoConstructorInfoctortype.GetConstructor(newType[]{typeof(string),typeof(int)});objectinstancector.Invoke(newobject[]{Bob,25});3. 调用方法Typetypetypeof(Calculator);objectcalcActivator.CreateInstance(type);// 获取方法MethodInfomethodtype.GetMethod(Add);// 调用实例方法intresult(int)method.Invoke(calc,newobject[]{10,20});// 调用静态方法MethodInfostaticMethodtype.GetMethod(Multiply);intstaticResult(int)staticMethod.Invoke(null,newobject[]{5,6});如果方法是泛型需先调用MakeGenericMethod()。4. 访问属性PropertyTypetypetypeof(Person);objectpersonActivator.CreateInstance(type);// 设置属性PropertyInfonameProptype.GetProperty(Name);nameProp.SetValue(person,Charlie);// 获取属性值stringname(string)nameProp.GetValue(person);5. 访问字段FieldFieldInfofieldtype.GetField(_age,BindingFlags.NonPublic|BindingFlags.Instance);field.SetValue(person,28);intage(int)field.GetValue(person);注意私有成员需要BindingFlags.NonPublic。6. 获取所有成员Typetypetypeof(MyClass);// 所有公共方法MethodInfo[]methodstype.GetMethods();// 所有公共属性PropertyInfo[]propstype.GetProperties();// 所有字段包括私有FieldInfo[]fieldstype.GetFields(BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Instance);// 所有构造函数ConstructorInfo[]ctorstype.GetConstructors();7. 检查和读取特性Attribute[DisplayName(用户实体)]publicclassUser{}// 检查是否有某个 AttributeboolhasAttrtype.IsDefined(typeof(DisplayNameAttribute),false);// 获取 Attribute 实例varattr(DisplayNameAttribute)type.GetCustomAttribute(typeof(DisplayNameAttribute));Console.WriteLine(attr.DisplayName);// 输出用户实体三、常用 BindingFlags 枚举值标志说明Public公共成员默认NonPublic私有/受保护成员Instance实例成员Static静态成员DeclaredOnly仅当前类型声明的成员不包括继承示例type.GetMethod(PrivateMethod,BindingFlags.NonPublic|BindingFlags.Instance);四、性能注意事项反射比直接调用慢很多可能慢 10~100 倍因为涉及类型查找、安全检查、装箱/拆箱等。避免在高频循环中使用反射。可缓存 MethodInfo / PropertyInfo 等以提升性能。考虑使用委托如Delegate.CreateDelegate或表达式树Expression优化。.NET Core / .NET 5 引入了System.Reflection.Emit和source generator等更高效替代方案。五、实际应用场景举例1. 通用对象拷贝器publicstaticvoidCopyProperties(objectsource,objecttarget){varsourceTypesource.GetType();vartargetTypetarget.GetType();foreach(varpropinsourceType.GetProperties()){vartargetProptargetType.GetProperty(prop.Name);if(targetProp!nulltargetProp.CanWrite){targetProp.SetValue(target,prop.GetValue(source));}}}2. 插件系统AssemblypluginAssembly.LoadFrom(Plugin.dll);TypepluginTypeplugin.GetTypes().FirstOrDefault(ttypeof(IPlugin).IsAssignableFrom(t));IPlugininstance(IPlugin)Activator.CreateInstance(pluginType);instance.Execute();3. ORM 映射如将 DataTable 转为对象publicstaticTToObjectT(DataRowrow)whereT:new(){TobjnewT();Typetypetypeof(T);foreach(DataColumncolinrow.Table.Columns){PropertyInfoproptype.GetProperty(col.ColumnName);if(prop!nullrow[col]!DBNull.Value)prop.SetValue(obj,row[col]);}returnobj;}六、总结优点缺点高度灵活支持运行时动态行为性能开销大实现通用框架如 DI、AOP、序列化代码可读性降低支持插件、脚本扩展容易引发运行时异常如拼写错误可用于调试、测试工具不支持 AOT 编译如 Native AOT的部分场景✅建议仅在必要时使用反射并做好异常处理如NullReferenceException、TargetException、MissingMethodException等。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

北京 设计网站网络营销的四种策略

想象一下,你是四川一家大型白酒厂的设备管理员。一天,灌装线上的一个关键轴承突然坏了。你在仓库里找到一个看起来差不多的替代品,换上去。机器是转了,但十多分钟里,每隔一会儿就卡顿,几百瓶高端白酒没能灌…

张小明 2026/3/5 3:55:52 网站建设

企业网站建设的调研网页制作软件英文名字

第一章:Open-AutoGLM与6G融合的演进逻辑随着第六代移动通信技术(6G)进入原型验证与标准预研阶段,人工智能与通信系统的深度融合成为核心趋势。Open-AutoGLM作为一种开源的自动化生成语言模型框架,具备动态推理、低延迟…

张小明 2026/3/5 3:55:53 网站建设

西宁网站维护可以做翻译兼职的网站

别小看「2 的幂」:它不是一道简单题,而是计算机世界的“通行证” 大家好,我是 Echo_Wish。 一个在算法圈混久了、也在一线写过不少系统代码的老家伙。 今天这个主题——2 的幂(Power of Two), 说实话,很多人一看到就会下意识地想: 「这不就是 LeetCode 入门题吗?一行…

张小明 2026/3/5 3:56:02 网站建设

网罗设计网站vue.js做个人网站

本文来源公众号“机器之心”,仅用于学术分享,侵权删,干货满满。 原文链接:https://mp.weixin.qq.com/s/ADHg2sJOQZdgGqdr_DJl3g 如果把用户在互联网上留下的每一个足迹都看作一段记忆,那么现在的推荐系统大多患有 “…

张小明 2026/3/5 3:55:57 网站建设

合肥企业网站模板建站o2o模式的电商平台网站有哪些

如何评估企业的量子计算天气预报应用 关键词:量子计算、天气预报应用、企业评估、计算性能、数据准确性 摘要:本文旨在探讨如何对企业的量子计算天气预报应用进行评估。随着量子计算技术的发展,其在天气预报领域的应用潜力逐渐凸显。文章首先介绍了评估的背景,包括目的、预…

张小明 2026/3/5 3:55:58 网站建设

可做免费推广产品的网站有哪些多少个网站

GoCV实战:从图像处理到界面集成的完整方案 【免费下载链接】gocv hybridgroup/gocv: 是一个基于 Go 语言的开源计算机视觉库,支持多种计算机视觉算法和工具。该项目提供了一个简单易用的计算机视觉库,可以方便地实现图像和视频处理算法&#…

张小明 2026/3/5 3:55:59 网站建设