【c# – 使用反射获取字段初始值设定项中使用的ctor参数】教程文章相关的互联网学习教程文章

c# – 没有代表的钩子(反射)【代码】

有没有办法可以使用反射将一个函数挂钩到另一个函数而不使用委托?class A {void Foo(){} }class B {void Main(){A a = new A();a.GetType().GetMethod("Foo").AddHook(a, Func); //I want something like thisa.Foo();//Func gets called}void Func(){} }有没有办法在Foo被调用后调用Func而不使用事件,委托或只是从Foo内部调用Func? 我需要这个,所以我的游戏的UI控制器可以更新. 我看到大多数人处理这个问题的方法是向A添加一堆事...

c# – 实体框架DbSet反射【代码】

我试图遍历我的DbContext中包含具有特定基类型的实体的所有DbSet.我的目标是在我在DbContext上调用SaveChanges并设置一些默认参数之前使用此循环. 在C#中,我的基类看起来像这样:public abstract class TrackedEntity {public string ModifiedBy { get; set; }public DateTime Modified { get; set; } }派生类的一个例子是: – public class Record : TrackedEntity {[Key]public int ID { get; set; }public string Name { get; ...

c# – 循环中的Efficent反射【代码】

在循环中使用反射时遇到性能问题.问题是我用它来重复访问长依赖链末端的对象.例如,在这种情况下class FirstObject {public SecondObject sO; }class SecondObject {public ThirdObject tO; }class ThirdObject {public FourthObject fO; }class FourthObject {public object neededValue; }由于我只对最后一个对象包含的值感兴趣,因此我需要使用GetProperty()重复遍历整个链.GetValue() FirstObject – > SecondObject – > Thi...

c# – 在运行时使用反射检查给定事件是否已订阅【代码】

考虑一个有一些事件的类.此事件列表将会增长.有些是可选的.其他是必需的. 为了简化一些初始验证,我有一个自定义属性,将事件标记为必需属性.例如:[RequiredEventSubscription("This event is required!")]public event EventHandler ServiceStarted;到现在为止还挺好.要使用反射验证所有事件,我会迭代事件列表并获取自定义属性.但我需要一种方法来确定事件是否已订阅. 没有反射,ServiceStarted.GetInvocationList就可以完成工作.但...

c# – 如何从反射和xml注释生成mediawiki-ready文档

有人可以建议一个良好的工作流程, >独立于数量可能的不同工具需要>以及手工工作量要进行, 可以允许我将我的项目文档(反射xml注释)合并到mediawiki语法中,然后我将其用于我的开发团队wikia?解决方法:将涉及一些体力劳动,但使用下面概述的资源应该是可行的. 我的第一个想法只是做了一些谷歌搜索,我遇到了http://www.mediawiki.org/wiki/Alternative_parsers.所有这些解析器似乎都采用数据并将其转换为XML,而不是XML,也没有一个是基于...

c# – 使用反射的Wcf Dynamic Hosting【代码】

我的目标是创建一个能够解析多个程序集,检测合同并托管服务的宿主应用程序. 为了加载服务,我们通常需要对servicehost实例化进行硬编码.以下代码工作,尽管不是我正在寻找的行为.ServiceHost wService1Host = new ServiceHost(typeof(Service1)); wService1Host.Open();ServiceHost wService2Host = new ServiceHost(typeof(Service2)); wService2Host.Open();但是,这意味着我事先知道服务是什么.我不介意引用包含服务的程序集.我只是...

c# – 注入通用getter和setter以获得比反射更好的性能【代码】

我试图编写一个高级网络库(主要是为了好玩),用户可以通过派生类轻松定义他们的数据包.这样解析消息很简单.用户数据包应仅包含基本值types. 为了做到这一点,我需要访问每个用户定义的数据包的每个字段.这个问题可以通过反射很容易地完成,但由于反射很慢,我无法使用它.为了快速做到这一点,我创建了一个类,在运行时为每个用户定义的数据包字段注入getter和setter(在StackOverflow上找到它). getter是Func< UserDefinedPacket,fieldTyp...

c# – 通过反射获取指针值【代码】

我有一个类型对象的实例,我知道它是一个指针(可以很容易地用myobject.GetType()验证.IsPointer).是否可以通过反射获得指针的值? 代码到目前为止:object obj = .... ; // type and value unknown at compile time Type t = obj.GetType();if (t.IsPointer) {void* ptr = Pointer.Unbox(obj);// I can obtain its (the object's) bytes with:byte[] buffer = new byte[Marshal.SizeOf(t)];Marshal.Copy((IntPtr)ptr, buffer, 0, bu...

c# – 如何使用反射将对象添加到类的实例的泛型列表属性中【代码】

我下面有一个班级结构.我收到了这个错误.我错过了什么吗?Object does not match target type.阶级结构public class Schedule {public Schedule() { Name = ""; StartDate = DateTime.MinValue; LectureList = new List<Lecture>(); }public string Name { get; set; }public DateTime StartDate { get; set; }public List<Lecture> LectureList { get; set; } }public class Lecture {public string Name { get; set; }public int...

c# – 使用反射调用泛型方法时,“对象与目标类型不匹配”【代码】

我搜索了几个关于类似问题的不同帖子,但似乎没有解决我的特定问题(尽管我相信它们离我不远). 以下链接是我的问题的最接近的版本 “Object does not match target type” when calling methods using string in C# 我的问题和链接中的问题唯一的区别是我正在调用泛型方法. 当我打电话时,我得到错误“对象与目标类型不匹配”,但是类型,形成我能说的绝对匹配.这是我已经复制了我的问题的示例代码. 任何帮助,将不胜感激class Program {...

C#的反射(一)【代码】【图】

1.什么是元数据(MetaData)和反射(reflection) 一般情况下我们的程序都在处理数据的读、写、操作和展示。但是有些程序操作的数据不是数字、文本、图片,而是程序和程序类型本身的信息。 ①元数据是包含程序以及类型信息的数据,它保存在程序的程序集当中。 ②程序在运行的时候,可以查看其他程序集或者其本身的元数据。这个行为就是反射。 2.Type类 BCL声明了一个Type类型(它是抽象类),用来包含类型的特性。使用这个类的对象...

c# – 如何使用反射找到特定的泛型重载?【代码】

我正在尝试创建一个将调用特定泛型重载方法的Expression(在我的第一个测试用例中为Enumerable.Average).特定类型绑定直到运行时才知道,因此我需要使用Reflection来查找和创建正确的泛型方法(Expression是从解析后的文本创建的). 所以,如果我在运行时知道我想找到这个特定的重载:public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector)如何使用反射解析特定的MethodInfo? 到目前...

c# – 通过反射排除接口实现成员【代码】

我有以下接口和实现:public interface INew {string TestString { get; } }public class PurchaseOrder : INew {public string OrderNo { get; set; }public string TestString{get { return "This is a test string"; }} }我试图使用以下代码反映PurchaseOrder对象的OrderNo部分:var props = p.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly | B...

AutoCAD C# 利用反射导出所注册的命令【代码】

主函数导出某一程序集AutoCAD 注册命令/// <summary>///提取所有的命令/// </summary>/// <param name="dllFiles">dll的路径</param>/// <returns></returns>public static List<gcadDllcmd> GetDllCmds(params string[] dllFiles){List<gcadDllcmd> res = new List<gcadDllcmd>();List<gcadCmds> cmds = new List<gcadCmds>();#region 提取所以的命令for (int i = 0; i < dllFiles.Length; i++){Assembly ass = Assembly.LoadFile...

C#反射检查变量值

/// <summary>/// 检验缓存数据/// </summary>/// <param name="AssemblyString">程序完全限定名</param>/// <param name="CacheNameSpace">命名空间</param>/// <param name="ClassName">类名</param>/// <param name="MethodName">方法名</param>/// <param name="Key"></param>/// <param name="FieldName">字段</param>/// <param name="Value">值</param>/// <returns></returns>public bool GetData(string AssemblyString, ...

字段 - 相关标签