由于缺少调试目标,无法开始调试。请生成项目并重试,或者相应的设置OutputPath和AssemblyName属性,使其指向目标程序集的正确位置。

1 篇文章 0 订阅
1 篇文章 0 订阅

这个错误是我在设置一个类为启动项,调试它的时候出现的。

   解决办法是右键选择这个类的属性,修改 调试-启动外部程序 将目录指向你可以运行的exe即可。


  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在C#中,可以使用Reflection API来生成类型和设置属性和字段。以下是一个示例代码: ``` using System; using System.Reflection; class Program { static void Main() { // 创建一个动态程序 AssemblyName assemblyName = new AssemblyName("MyAssembly"); AssemblyBuilder assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run); ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("MyModule"); // 创建一个新类型 TypeBuilder typeBuilder = moduleBuilder.DefineType("MyType", TypeAttributes.Public); // 添加一个属性 PropertyBuilder propertyBuilder = typeBuilder.DefineProperty("MyProperty", PropertyAttributes.HasDefault, typeof(int), null); // 添加一个字段 FieldBuilder fieldBuilder = typeBuilder.DefineField("myField", typeof(string), FieldAttributes.Private); // 设置属性的getter和setter方法 MethodBuilder getMethodBuilder = typeBuilder.DefineMethod("get_MyProperty", MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig, typeof(int), Type.EmptyTypes); ILGenerator getIlGen = getMethodBuilder.GetILGenerator(); getIlGen.Emit(OpCodes.Ldarg_0); getIlGen.Emit(OpCodes.Ldfld, fieldBuilder); getIlGen.Emit(OpCodes.Ret); propertyBuilder.SetGetMethod(getMethodBuilder); MethodBuilder setMethodBuilder = typeBuilder.DefineMethod("set_MyProperty", MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig, null, new[] { typeof(int) }); ILGenerator setIlGen = setMethodBuilder.GetILGenerator(); setIlGen.Emit(OpCodes.Ldarg_0); setIlGen.Emit(OpCodes.Ldarg_1); setIlGen.Emit(OpCodes.Stfld, fieldBuilder); setIlGen.Emit(OpCodes.Ret); propertyBuilder.SetSetMethod(setMethodBuilder); // 创建类型 Type myType = typeBuilder.CreateType(); // 创建类型的实例 object instance = Activator.CreateInstance(myType); // 设置属性的值 PropertyInfo myPropertyInfo = myType.GetProperty("MyProperty"); myPropertyInfo.SetValue(instance, 42); // 获取属性的值并输出 int myPropertyValue = (int)myPropertyInfo.GetValue(instance); Console.WriteLine("MyProperty value is {0}", myPropertyValue); } } ``` 该示例程序运行时生成一个名为"MyType"的公共类型,该类型具有一个名为"MyProperty"的整数属性和一个名为"myField"的私有字符串字段。使用Reflection API设置属性的getter和setter方法。最后,程序创建该类型的实例并设置和获取其属性的值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值