, , . /:
: IUserService
public interface IUserService
{
IEnumerable<User> Users();
void AddUser(User user);
}
UserService, IUserService
public class UserService : IUserService
{
public UserService()
{
}
public IEnumerable<User> Users()
{
return ((App)App.Current).Users;
}
public void AddUser(User user)
{
((App)App.Current).Users.Add(user);
}
}
IUserService
MainWindow :
public partial class MainWindow : UserControl
{
private readonly IUserService _userService;
public MainWindow(IUserService userService)
{
_userService = userService;
}
public IEnumerable<User> GetUsers()
{
return _userService.Users();
}
}
:
. , IApplicationService / , Api Keys, -, , ..
IEnumerable<T> List<T>
, . /, .
, , , , - , GetUsers(string lastName), GetUsers(string lastName, string firstName) .
App.Current as
This is good practice because using a keyword asmeans that if it fails, it returns null rather than throwing an exception. I prefer the exception, because in 99% of cases, if your roll fails, your subsequent operations will also be. :)
Enjoy it!
source
share