Ответы пользователя по тегу C#
  • C# проект с поддержкой нескольких бд?

    Shedal
    @Shedal
    Если использовать ORM, то ответ очевиден. Вы будете использовать встроенные в них средства, а также бороться с их ограничениями.

    В принципе же, ответ таков: выделять классический DAL — Data Access Layer. Для этого существует много стандартных паттернов. Например:

    Самое простое — Data Mapper. Создаёте интерфейс для вашей сущности:

    interface ICarData
    {
      void Insert(Car car);
      Car GetById(int id);
      // и т.д.
    }
    

    Затем наследуете от этого интерфейса классы, его реализующие — e.g. MySqlCarData, MongDbCarData.
    Отдельная задача здесь — определение, какой класс использовать. Самый простой способ — задавать имя класса через конфигурационный файл и создавать объект нужного класса простой фабрикой (switch(className) {… } ). Более красиво — использовать IoC/DI контейнер.
    Ответ написан
    Комментировать
  • ViewModel как передать несколько моделей?

    Shedal
    @Shedal
    Ну во-первых, если все объекты NewsEntity являются объектами одного класса, или их классы наследуются от одного класса, то можно сделать вот так:

    @model IEnumerable<BaseEntity>
    

    А если модели совсем разные, то можно их в контроллере записать во ViewBag (или ViewData):

    ViewBag.NewsEntity = new NewsEntity( /* ... */ );
    ViewBag.OtherEntity = new OtherEntity( /* ... */ );
    

    И потом во view'хе так же к ним и обращаться: ViewBag.NewsEntity....
    Ответ написан
    Комментировать
  • Сравнение строк на C#?

    Shedal
    @Shedal
    Стандартными средствами .NET это автоматически сделать не получится. Ведь символы это разные, даже если выглядят похоже.
    Простой вариант — сначала заменить все английские символы на аналогичные русские, а потом уже сравнивать строки.
    Ответ написан
    4 комментария
  • Asp.net singleton?

    Shedal
    @Shedal
    Из MSDN:
    The Application_Start and Application_End methods are special methods that do not represent HttpApplication events. ASP.NET calls them once for the lifetime of the application domain, not for each HttpApplication instance.
    То есть, ваш поток, скорее всего, создаётся в отдельном процессе — не в том, в котором крутится ваш конкретный HttpApplication instance.
    Попробуйте вместо этого создавать поток в методе Init(), должно помочь.
    Ответ написан
    1 комментарий
  • Множественное наследование в C# для свойств (или параметров функций)

    Shedal
    @Shedal
    По-моему, вы не до конца продумали, как вы это хотите использовать. Вам же все равно прийдется создавать объект класса, который наследует оба интерфейса, а, значит, и создавать класс ColorClickableButton: IClickableButton, IColorButton.

    В любом случае, вам, возможно, поможет конструкция типа этой:
    public class MyForm<T> where T : IClickableButton, IColorButton
    {
        T Button { get; set; }
    }
    
    Ответ написан