Sam*_*ack 5 c# asp.net-identity asp.net-identity-2
我正在使用Asp.Net Identity框架,我有一个User类,如下所示:
public class User : IUser
{
public string Id {get; private set;}
public string Email {get; set;}
string IUser.UserName { get { return Email;} set { Email = value;}}
}
Run Code Online (Sandbox Code Playgroud)
我刚刚升级到Asp.Net身份Framework的第二版,我已经开始收到编译错误," 在显式接口声明'IUser.UserName’不是接口的成员 ".以前一切都很好.
怎么了?
有两件事促成了这个:
当您显式实现接口时,C#希望您使用最少派生接口的名称限定成员名称,而不是可以从其继承的接口名称.
要修复代码,您需要执行以下操作:
public class User : IUser
{
string IUser<string>.UserName { get { return Email;} set { Email = value;}}
}
Run Code Online (Sandbox Code Playgroud)
奖金示例
这是一个生成相同错误消息的完整示例:
public interface Base
{
string MyProperty { get; set; }
}
public interface Inherited : Base
{
}
public class Implementor : Inherited
{
string Inherited.MyProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)