如何在被调用方法中获取调用对象?
我必须创建一个自定义 MessageBox,创建如下:
public static class MsgBox
{
public static MessageBoxResult Show(string messageBoxText)
{
var msg = new CustomMessageBoxWindow(messageBoxText);
msg.ShowDialog();
return msg.Result;
}
}
我现在需要为这个 MessageBox 指定一个所有者。我可以通过强制开发人员传入调用对象来做到这一点,例如
public static MessageBoxResult Show(string messageBoxText, Window owner)
并将所有者设置如下
msg.Owner = owner;
但这意味着必须在很多地方改变很多电话。这是可行的,但并不理想。理想情况下,我可以从 Show() 方法中找出哪个类称为 MessageBox 并设置它,而无需传递任何新参数,例如
public static MessageBoxResult Show(string messageBoxText)
{
var msg = new CustomMessageBoxWindow(messageBoxText);
msg.ShowDialog();
var owner = // somehow get the calling Window;
msg.Owner = owner;
return msg.Result;
}