VS2010无法识别反编译DLL的Lambda表达式属性,求改写方案
解决Visual Studio 2010不支持Lambda式属性的改写方法
你遇到的是C#版本兼容问题:代码里的=>是C# 6.0引入的表达式体只读属性简化语法,而Visual Studio 2010默认只支持到C# 4.0,所以无法识别。这类代码可以直接转换成旧版C#支持的完整属性定义形式,原理非常简单:
改写规则
把表达式体属性:
[修饰符] string 属性名 => 返回值;
转换成带get访问器的完整属性:
[修饰符] string 属性名 { get { return 返回值; } }
其中[修饰符]包括public、override、virtual等,保留不变即可。
你的示例代码改写结果
原代码对应的兼容版本如下:
1: public override string object_type { get { return "access_token"; } } 2: public override string resource { get { return "/access_tokens"; } } 3: public override string object_type { get { return "account"; } } 4: public override string resource { get { return "/accounts"; } } 5: public virtual string object_type { get { return ""; } } 6: public virtual string resource { get { return ""; } } 7: public override string object_type { get { return "payment_method"; } } 8: public override string resource { get { return "/payment_methods"; } } 9: public override string object_type { get { return "transaction"; } } 10: public override string resource { get { return "/transactions"; } }
所有这类结构的代码都可以按这个规则批量转换,转换后就能在Visual Studio 2010中正常编译使用。
内容的提问来源于stack exchange,提问作者austin2359
相关产品推荐
相关产品推荐

