C#反射获取上级调用类

1、返回当前方法所在的类名: 

using System.Reflection;

sting className = MethodBase.GetCurrentMethod().ReflectedType.Name;

2、返回调用当前方法的方法名:

 public class SeleniumUtil
    {
        public static void getFileName()
        {
            StackTrace trace = new StackTrace();
            StackFrame frame = trace.GetFrame(1);//1代表上级,2代表上上级,以此类推
            MethodBase method = frame.GetMethod();
            String className = method.ReflectedType.Name;
            Console.Write("ClassName:" + className + "\nMethodName:" + method.Name);
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            SeleniumUtil.getFileName();
            Console.ReadLine();
        }
    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用反射调用EF Core方法。在使用反射调用EF Core方法之前,需要确保已经将EF Core添加到项目引用中,并且在代码中使用了EF Core的命名空间。 下面是一个使用反射调用EF Core方法的示例: ```csharp using System; using System.Reflection; using Microsoft.EntityFrameworkCore; public class MyDbContext : DbContext { public DbSet<MyEntity> MyEntities { get; set; } } public class MyEntity { public int Id { get; set; } public string Name { get; set; } } public static void Main(string[] args) { // 创建DbContext对象 var dbContext = (DbContext)Activator.CreateInstance(typeof(MyDbContext)); // 获取DbSet<MyEntity>属性 var myEntitiesProperty = dbContext.GetType().GetProperty("MyEntities"); // 获取DbSet<MyEntity>对象 var myEntities = myEntitiesProperty.GetValue(dbContext); // 调用DbSet<MyEntity>.Add方法 var addMethod = myEntities.GetType().GetMethod("Add"); var myEntity = new MyEntity { Name = "test" }; addMethod.Invoke(myEntities, new[] { myEntity }); // 调用DbContext.SaveChanges方法 var saveChangesMethod = dbContext.GetType().GetMethod("SaveChanges"); saveChangesMethod.Invoke(dbContext, null); } ``` 在上面的示例中,我们使用反射创建了一个`MyDbContext`对象,并通过反射获取了`MyDbContext`中的`DbSet<MyEntity>`属性。然后,我们使用反射调用了`DbSet<MyEntity>`的`Add`方法,并传入了一个`MyEntity`实例。最后,我们再次使用反射调用了`MyDbContext`的`SaveChanges`方法,以保存更改到数据库中。 需要注意的是,由于EF Core的方法是通过反射调用的,因此可能会影响性能。同时,在使用反射调用EF Core方法时,需要确保调用的方法名称和参数类型与EF Core的实现保持一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值