Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Type / 25 сообщений из 196, страница 1 из 8
21.10.2016, 08:50
    #39331188
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
Как подставить тип document в IMongoCollection<T> ?
...
Рейтинг: 0 / 0
21.10.2016, 09:34
    #39331218
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_max,

Не понял, что хочешь сделать? Что не получается?
...
Рейтинг: 0 / 0
21.10.2016, 09:36
    #39331220
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
hVosttmr_max,

Не понял, что хочешь сделать? Что не получается?
сейчас стоит IMongoCollection<Request> зашито под конкретный класс,
а я хочу сделать универсально, подставлять класс в IMongoCollection в зависимости от типа переменной document.
...
Рейтинг: 0 / 0
21.10.2016, 10:25
    #39331265
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_maxсейчас стоит IMongoCollection<Request> зашито под конкретный класс,

Оно не «зашито», они известно на этапе компиляции, со всеми вытекающими плюшками, типа проверки типов, интеллисенса, статического выбора логики на основе известного типа.


mr_maxа я хочу сделать универсально, подставлять класс в IMongoCollection в зависимости от типа переменной document.

Generic-тип можно состряпать во время исполнения. Но имеет ли это смысл? Ни интеллисенса, ни статической проверки типов, ни других плюшек от шаблонов ты не получишь. Зачем? Покажи, для чего конкретно тебе это надо.
...
Рейтинг: 0 / 0
21.10.2016, 10:34
    #39331272
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
hVosttmr_maxсейчас стоит IMongoCollection<Request> зашито под конкретный класс,

Оно не «зашито», они известно на этапе компиляции, со всеми вытекающими плюшками, типа проверки типов, интеллисенса, статического выбора логики на основе известного типа.


mr_maxа я хочу сделать универсально, подставлять класс в IMongoCollection в зависимости от типа переменной document.

Generic-тип можно состряпать во время исполнения. Но имеет ли это смысл? Ни интеллисенса, ни статической проверки типов, ни других плюшек от шаблонов ты не получишь. Зачем? Покажи, для чего конкретно тебе это надо.
Т.е. мой вариант не так уж и плох?

Мне это нужно для генерация ИД для монги.
И эту функцию могут вызывать разные коллекции.
...
Рейтинг: 0 / 0
21.10.2016, 10:59
    #39331303
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_max,
Код: c#
1.
2.
3.
4.
 public object GenerateId<T>(IMongoCollection<T> container)
        {
            .....
        }



P. S. есть же возможность вставлять нормальный C# код.
...
Рейтинг: 0 / 0
21.10.2016, 11:20
    #39331331
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
ЕвгенийВmr_max,
Код: c#
1.
2.
3.
4.
 public object GenerateId<T>(IMongoCollection<T> container)
        {
            .....
        }



P. S. есть же возможность вставлять нормальный C# код.

Я наследуюсь от этого интерфейса, там нет этого метода
...
Рейтинг: 0 / 0
21.10.2016, 11:37
    #39331358
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_max,
Открой для себя методы расширения .
P. S. ну ёлы палы, научись вставлять форматированный C# код, который можно будет скопировать!
...
Рейтинг: 0 / 0
21.10.2016, 11:39
    #39331366
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
ЕвгенийВmr_max,
Открой для себя методы расширения .
P. S. ну ёлы палы, научись вставлять форматированный C# код, который можно будет скопировать!
Дело в том, что монга использует этом метод для генерации Id, она не будет мой использовать.

Код: c#
1.
2.
3.
4.
 
public object GenerateId(object container, object document)
{
}
...
Рейтинг: 0 / 0
21.10.2016, 12:18
    #39331427
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_maxМне это нужно для генерация ИД для монги.
И эту функцию могут вызывать разные коллекции.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public object GenerateId<T>(object container, object document)
{
    if(document is T)
    {
       var context = ((IMongoCollection<T>)container);
       // ну и так далее, вместо Request используй T...
    }
    return "";
}
...
Рейтинг: 0 / 0
21.10.2016, 12:18
    #39331429
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_max,

используешь так:

GenerateId<Request>(contaner, document)
...
Рейтинг: 0 / 0
21.10.2016, 13:12
    #39331494
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
hVosttmr_max,

используешь так:

GenerateId<Request>(contaner, document)
под каждый класс использовать этот метод?
...
Рейтинг: 0 / 0
21.10.2016, 13:22
    #39331505
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_max,

если ты заменишь определение

object GenerateId<T>(object container, object document)

на

object GenerateId<T>(IMongoCollection<T>container, T document)

то указывать <Request> будет не нужно, но типы всё равно должны быть известны.

или показывай конечный кейс использования. до сих пор непонятно чего ты хочешь. если тебе дженерики не нужны, с чем же ты вообще там работаешь в монге?
...
Рейтинг: 0 / 0
21.10.2016, 14:16
    #39331565
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
hVosttobject GenerateId<T>(IMongoCollection<T>container, T document)


По его коду document нужен только для определения типа, а тут он уже есть, параметр T document в топку.
...
Рейтинг: 0 / 0
21.10.2016, 14:29
    #39331579
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
Не попадает оно туда
...
Рейтинг: 0 / 0
21.10.2016, 14:50
    #39331617
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_max,

и не будет, оставь один метод и добивай его
...
Рейтинг: 0 / 0
21.10.2016, 14:50
    #39331620
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
ЕвгенийВ,

это чтобы тип выводился из вызова автоматически
...
Рейтинг: 0 / 0
21.10.2016, 14:59
    #39331639
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
hVosttmr_max,

и не будет, оставь один метод и добивай его
Получается надо некий switch делать и подставлять модель в ручную в IMongoCollection<T>?
...
Рейтинг: 0 / 0
21.10.2016, 15:31
    #39331679
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_max,

зачем? модель может выводиться автоматически, в варианте

object GenerateId<T>(IMongoCollection<T>container, T document)
...
Рейтинг: 0 / 0
21.10.2016, 15:31
    #39331680
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
hVostt,

*тип точнее
...
Рейтинг: 0 / 0
22.10.2016, 11:09
    #39332073
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
5-й год как использую MongoDB + C# и не понимаю, зачем Вам все эти танцы..
...
Рейтинг: 0 / 0
22.10.2016, 14:37
    #39332116
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
skyANA,

я тоже...
...
Рейтинг: 0 / 0
22.10.2016, 15:04
    #39332123
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
А как вы сделаете id для заявки чтобы не был гуид а был номер по порядку
...
Рейтинг: 0 / 0
22.10.2016, 15:41
    #39332126
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_maxА как вы сделаете id для заявки чтобы не был гуид а был номер по порядку

Зачем?
...
Рейтинг: 0 / 0
22.10.2016, 19:06
    #39332157
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type
mr_maxА как вы сделаете id для заявки чтобы не был гуид а был номер по порядку
Тупо инкремент? У нас так :)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Type / 25 сообщений из 196, страница 1 из 8
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]