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();
}
}