从另一个文件的另一个类中调用方法 C#

4

我在Feed.aspx.cs中声明了一个命名空间。这个命名空间包含一个类,这个类包含一个方法:Feed.aspx.cs

namespace GetUser
{
public class MyFeedClass
{
   public string getUserID()
   {

       MembershipUser user = Membership.GetUser(HttpContext.Current.User.Identity.Name);
       HttpContext.Current.Session["x"] = user.ProviderUserKey.ToString();
       string test = (string)HttpContext.Current.Session["x"];
       return test;
   }

}

现在,我想从 MyPage.aspx.cs 中调用 getUserID() 方法。我该怎么做?

2个回答

5

我猜你正在使用Asp.NET?

你应该在add_code文件夹中创建一个新的类。 将该命名空间和类移动到新创建的类中

然后从Feed.aspx.cs中调用它:

GetUser.MyFeedClass myfeed = new GetUser.MyFeedClass();
string result = myfeed.getUserID();

1
是的,出现了这个错误:找不到类型或命名空间名称“GetUser”(是否缺少使用指令或程序集引用?) - Tudor Gafiuc
不要在aspx.cs文件中声明命名空间和类,而是在app_code文件夹中创建一个新的类。 - Carlos Landeras
@TudorGafiuc,此外,如果您将类声明在aspx文件之外,您的应用程序将更好地结构化。 - Carlos Landeras
谢谢Carlos,我一定会在未来发布更多问题,因为我正在尝试为我的许可项目构建一个小型社交网络。干杯! - Tudor Gafiuc
@TudorGafiuc。Stackoverflow非常棒!以后再见 ;) - Carlos Landeras

0

请确保在您的代码后台中包含命名空间:

using GetUser;

将MyFeedClass中的公共函数改为静态函数:
public static string getUserID() {...}

然后在您的aspx.cs页面中,您现在可以尝试执行以下操作:

string userId = MyFeedClass.getUserID();

我尝试使用 "using GetUser;",但仍然显示相同的错误 - "找不到类型或命名空间名称 'GetUser'"。不过,我已经按照上面的建议解决了这个问题 :) 无论如何还是谢谢! - Tudor Gafiuc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接