Я работаю над плагином на основе архитектуры. Это своего рода сайт социальной сети.
Для пользователя у меня могут быть картинки, блоги, видео. но все они приходят из модулей.
Итак, когда вы заходите в профиль пользователя, вы видите вкладки, на которых написаны картинки, видео и прочее.
У меня есть интерфейс
public interface IUserContent
{
UserContent GetContent(long id);
}
public class UserContent
{
public int Count {get;set;}
public string URL {get;set;
public string Text {get;set;
}
Итак, если модуль фотографий реализует IUserContent
это будет выглядеть так
public class UserPhotos : IUserContent
{
public UserContent GetContent(long id)
{
return new UserContent {
Count = SomeRepository.GetPhotosCountByUser(id),
URL = string.format("/photos/byuser/{0}",id) ,
Text ="Photos" };
}
}
Этот URL-адрес представляет собой метод действия в Photoshop Controller.
На странице моего профиля я получаю все реализации IUserContent
var list = GetAllOf(IUserContent);
и отображать их, используя цикл foreach в качестве вкладок на странице профиля пользователя.
Теперь мой вопрос: есть ли лучший способ сделать это? Я не хочу использовать URL в качестве строки.
Или любая лучшая практика для достижения этого.
Привет
Parminder