.NET中是否有一种功能,方法可以通过它确定哪个类调用它

时间:2011-02-28 23:14:41

标签: c# .net asp.net oop frameworks

我有一个类,其中有一个方法,我有一些调用此方法的aspx页面。现在我想知道在这个方法中哪个页面调用了它。
或者是否在.NET中有一个功能,方法可以通过它确定哪个类调用它

4 个答案:

答案 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