我上课了:
static class GetRole
{
public static string OfUser(string username)
{
string result="None";
foreach (string key in WebConfigurationManager.AppSettings)
{
if (WebConfigurationManager.AppSettings[key].Contains(username))
{
result = WebConfigurationManager.AppSettings[key];
break;
}
}
return result;
}
}
我想像这样使用它
string role = GetRole.OfUser(username);
或者更喜欢这样:
string role = GetRole(username);
我该怎么做?
答案 0 :(得分:6)
我想像这样使用它
string role = GetRole.OfUser(username);
所以这样做;这似乎是正确的。你试过吗?
或者更喜欢这样:
string role = GetRole(username);
这不起作用;你必须指定你正在调用的方法以及它来自哪个类。
如果您在与您调用的代码相同的类中有static void GetRole
,那么您可以这样做。
然而,仅仅因为你可以做某事并不意味着你应该这样做。 “获取用户角色”的自然方式是调用属于用户自身的方法。这反过来意味着拥有一个为每个用户实例化的User类。
答案 1 :(得分:1)
你几乎已经用你的第一个如何使用它的例子钉了它:
string role = GetRole.OfUser(username);
静态成员表示它没有声明它的任何类型的实例。唯一可能给你带来麻烦的是你的班级是内部的;这意味着您无法从其他程序集访问它。尝试制作public static class GetRole
。
答案 2 :(得分:1)
有点晚了,但很容易做到
using static MyProjectNameSpace.GetRole;
现在你可以直接使用你的方法了
OfUser("NewUserName");
答案 3 :(得分:0)
string role = GetRole.OfUser(username);
你试图在设置之前使用方法的变量...方法检查AppSettings[key].Contains(username))
然后返回一个输出,所以方法期望像这样的字符串输入...
string role = GetRole.OfUser("NewUsername");