У меня проблемы. У меня есть подкласс на основе беглого примера интерфейса Рэнди Паттерсона:
Страница дизайна интерфейса Рэнди Паттерсона
Я создаю подкласс класса User, и мне нужно передать свойства, установленные в нем, в метод CreateNewUser ниже в подклассе UserFluentInterface
public void CreateNewUser()
{
try
{
User user = (User)_User;
MembershipCreateStatus status;
MembershipUser memuser = _membership.CreateUser(user, out status);
}
catch (Exception e)
{
string message = e.Message;
}
}
и _membership.CreateUser имеет подпись:
public MembershipUser CreateUser(User user, out MembershipCreateStatus status);
Я получаю сообщение об ошибке:
Невозможно получить доступ к нестатическому члену
внешний тип "MyProject.Schema.User" через
вложенный тип
'MyProject.Schema.User.UserFluentInterface'
Я не уверен, как решить эту проблему. Код выглядит следующим образом:
User user = _someAPI.GetUserProfile(txtEmail.Text);
user.Set
.Email(txtEmail.Text)
.Password(txtPassword.Text)
.CreateNewUser();
Теперь у меня есть класс User с подклассом:
public class User : ProfileBase, ISessionMgrEntry
{
MyMembershipProvider _membership = null;
UserFluentInterface _set = null;
public User()
{
_membership = (MyMembershipProvider)Membership.Providers["MyMembershipProvider"];
_set = new UserFluentInterface(this);
}
public UserFluentInterface Set
{
get { return _set; }
}
#region ProfileBase Members
[SettingsAllowAnonymous(false), CustomProviderData("Email;string")]
public string Email { get { return base["Email"] as string; } set { base["Email"] = value; } }
[SettingsAllowAnonymous(false), CustomProviderData("Password;string")]
public string Password { get { return base["Password"] as string; } set { base["Email"] = value; } }
public class UserFluentInterface
{
private readonly User _User;
public UserFluentInterface(User User)
{
_User = User;
}
public UserFluentInterface Email(string email)
{
_User.Email = email;
return this;
}
public UserFluentInterface Password(string password)
{
_User.Password = password;
return this;
}
public void CreateNewUser()
{
try
{
User user = ???? // HOW DO I ACCESS THE PROPERTIES THAT WERE ORIGINALLY SET AND PASS THEM AS AN OBJECT BELOW?
MembershipUser memuser = _membership.CreateUser(user);
}
catch (Exception e)
{
string message = e.Message;
}
}
}
}