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