我有一个类,其中有一个方法,我有一些调用此方法的aspx页面。现在我想知道在这个方法中哪个页面调用了它。
或者是否在.NET中有一个功能,方法可以通过它确定哪个类调用它
答案 0 :(得分:3)
呸。
嗯,无论如何,
new StackTrace().GetFrame(1).GetMethod().DeclaringType
那将为您提供类型。
这是否真的需要?看起来像意大利面条解决方案。
答案 1 :(得分:2)
试试这段代码:
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
答案 2 :(得分:1)
为什么不使用界面?
这样,您还可以限制可以使用该方法的页面。
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!";
}
上面是一个简单的例子。我不会为所有这些使用字符串。您的解决方案将取决于您想要对调用它的页面执行的操作。
答案 3 :(得分:0)
你走了。这应该告诉您请求当前页面的页面的完整URL。
Request.Urlreferrer