RoleProvider您公开的基类CustomeRoleProvider不是public.
如果您声明RoleProvider为public错误将消失。您不必提供RoleProvider构造public函数。
或者,您可以将 的可访问性降低CustomRoleProvider到 的可访问性RoleProvider。这可能是最合适的答案,你需要暴露CustomRoleProvider在程序集之外吗?
如果RoleProvider是一个接口,那么按照惯例,它是错误命名的,您可以将其重命名为IRoleProvider. 无论如何,那时它仍然不太容易获得CustomRoleProvider。
像这样公开,
public interface IRoleProvider
{
void CreateRole(string roleName);
bool DeleteRole(string roleName, bool throwOnPopulatedRole);
}
如果您不指定interface,class或struct,的可访问性,internal则暗示。
interface成员总是public。class和struct成员private除非另有说明。
最好指定,除非接口成员总是public.
您的实现可能如下所示,该override关键字不应用于接口实现,除非它们覆盖可覆盖的基类实现。
public class CustomRoleProvider : IRoleProvider
{
public void CreateRole(string roleName)
{
throw new NotImplementedException();
}
public bool DeleteRole(string roleName, bool throwOnPopulatedRole)
{
throw new NotImplementedException();
}
}
如果你想明确地实现接口,
public class CustomRoleProvider : IRoleProvider
{
public void IRoleProvider.CreateRole(string roleName)
{
throw new NotImplementedException();
}
public bool IRoleProvider.DeleteRole(
string roleName,
bool throwOnPopulatedRole)
{
throw new NotImplementedException();
}
}