我试图检索属性的变量名称,而不是值.我目前正在使用反射,但如果有人有其他建议,将非常感谢.
我有三节课
A:
class A
{
public B bObject;
int Number { return bObject.number; } //returns 3
}
Run Code Online (Sandbox Code Playgroud)
B:
class B
{
public int number = 3;
}
Run Code Online (Sandbox Code Playgroud)
C:
class C
{
public void myMethod()
{
A aObject = new A();
var aNumber = aObject
.GetType()
.GetProperty("Number")
.GetValue(aObject, null);
//this is the value. aNumber = 3.
var objName = nameof(aNumber); //returns aNumber
}
Run Code Online (Sandbox Code Playgroud)
我希望objName返回字符串"bObject.number",即在属性中调用的变量.这可能与我目前的设置有关,如果没有,是否有人有建议?
我宁愿在B中没有另一个方法来返回"nameof(bObject)+ nameof(bObject.number)"然后由于冗余而调用该方法和prop.谢谢你的时间.
我已经安装了nuget Roslyn,Install-Package Microsoft.CodeAnalysis -Pre但我仍然无法获取方法,SyntaxTree.ParseFile因为我想在.cs文件中传递代码
任何关于为什么会这样的线索?我怎么能在这里传递文件?
c# ×2
.net ×1
asp.net-mvc ×1
compilation ×1
nameof ×1
properties ×1
reflection ×1
roslyn ×1
variables ×1