gpt4 book ai didi

c# - 是否有任何优雅的方式来根据调用者执行特定代码,使用反射或其他方式?

转载 作者:太空宇宙 更新时间:2023-11-03 22:28:26 25 4
gpt4 key购买 nike

在我的理想世界中,我正在寻找的东西会像这样存在:

public string UserDefinedField
{
get { return _userDefinedField; }
internal set { _userDefinedField = value; }
set { _userDefinedField = value; ChangedFields.Add(Fields.UserDefinedField); }
}

无论访问修饰符如何执行一条语句,如果从外部程序集或类调用另一条语句,则执行另一条语句。

我确信我可以通过使用反射并检查当前调用堆栈来查看调用者是否在同一个程序集中来编写代码,但我正在寻找是否有比这更优雅的方法。

最佳答案

public string UserDefinedField
{
get { return _userDefinedField; }
set { SetField(value); ChangedFields.Add(Fields.UserDefinedField); }
}

// Call this from internal methods and use the public property for other cases
internal string SetField(string userValue)
{
_userDefinedField = userValue;
}

可以通过examining the calling stack 获取来电者信息但这非常慢(与上述相比),我不推荐它。

关于c# - 是否有任何优雅的方式来根据调用者执行特定代码,使用反射或其他方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/213192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com