【发布时间】:2011-07-06 03:27:14
【问题描述】:
我有一个类,其中有一个方法,并且我有一些调用此方法的 aspx 页面。现在我想知道在这个方法中哪个页面调用了它。
或者
.NET 中是否有一个功能可以让方法确定哪个类调用了它
【问题讨论】:
标签: c# .net asp.net oop frameworks
我有一个类,其中有一个方法,并且我有一些调用此方法的 aspx 页面。现在我想知道在这个方法中哪个页面调用了它。
或者
.NET 中是否有一个功能可以让方法确定哪个类调用了它
【问题讨论】:
标签: c# .net asp.net oop frameworks
呸。
不管怎样,
new StackTrace().GetFrame(1).GetMethod().DeclaringType
这会给你类型。
有什么理由真的需要这样做吗?似乎是一种意大利面条解决方案。
【讨论】:
试试这个代码:
System.Diagnostics.StackFrame f = new System.Diagnostics.StackFrame();
Type t = f.GetMethod().DeclaringType;
string name = t.FullName;
string classname = name.Substring((name.IndexOf('.')+1));
来源是this link
【讨论】:
为什么不使用接口?
这样你也可以限制可以使用该方法的Pages。
interface INamedPage {
string Name { get; set; }
}
这是您的页面:
public PageOne: Page, INamedPage {
...
public string Name {
get { return "Page One"; }
}
...
}
被调用的方法:
public void WhoIsIt (INamedPage page) {
return "Oh it was " + page.Name + " again!";
}
上面是一个简单的例子。我不会全部使用字符串。您的解决方案必须取决于您想对调用它的页面做什么。
【讨论】:
给你。这应该会告诉您请求当前页面的页面的完整 url。
Request.Urlreferrer
【讨论】: