2011-02-28 60 views

回答

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

+0

非常好的答案! – Student 2011-03-01 00:07:48

0

在这里,您可以继续。这应该告诉你请求当前页面的完整网址。

Request.Urlreferrer 
+0

他似乎有某种类型的helper方法,他想知道什么页面调用的方法。无论是他还是他完全解释错了O_o – 2011-02-28 23:20:29

+0

是的。我正在尽力破译这个问题。特别是考虑到类不实际调用方法。对象的方法做。 – JohnFx 2011-02-28 23:22:32

3

Yuck。

好吧,无论如何,

new StackTrace().GetFrame(1).GetMethod().DeclaringType 

这会给你的类型。

这是真的需要吗?看起来像意大利面条解决方案。

+1

你是对的我有一种辅助方法,我想知道什么页面称为方法。 – Student 2011-02-28 23:24:45

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!"; 
} 

上面是一个简单的例子。我不会使用所有的字符串。你的解决方案将不得不取决于你想要对页面进行的调用。

相关问题