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