powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# - обратиться к полям анонимнгог типа
6 сообщений из 6, страница 1 из 1
c# - обратиться к полям анонимнгог типа
    #36538743
anthony17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой вопрос:
Есть объекты анонимного типа, полученные из Linq путем

Код: plaintext
1.
2.
3.
4.
5.
select new
                             {
                                 OrderId = grp.Key.Value,
                                 RetDate = grp.Max(s => s.mDate),
                                 Summa = grp.Sum(s => s.mSumma)
                             };

Эта коллекция привязана к репитеру. Есть еще и вложенный репитер. К нему привязываются данные на основании текущего объекта внешнего репитера в методе
Код: plaintext
protected void repMainDataBound(object sender, RepeaterItemEventArgs e)

Подскажите, как обратиться к полю OrderId из e.Item.DataItem? Пробовал создать класс с такими же полями и типами, как в анонимном, но получаю ошибку приведения.
Код: plaintext
1.
2.
3.
4.
5.
public class cGiveBackRow
{ 
    public Int32 OrderId;
    public DateTime? RetDate;
    public double?  Summa;
}

Спасибо за внимание.
...
Рейтинг: 0 / 0
c# - обратиться к полям анонимнгог типа
    #36538758
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смоделируйте тестовый пример, что-то я нифига не понял, что там куда вложено и откуда нужно достать поле анонимного типа.
...
Рейтинг: 0 / 0
c# - обратиться к полям анонимнгог типа
    #36538830
anthony17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем не важно, репитеры или нет. Суть в том, чтобы передать объект анонимного типа какому-нить методу. Но проблема в том, как обратиться к полям этого объекта внутри метода? Ответ я уже нашел на stackoverflow
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
class Program
    {
        static void Main(string[] args)
        {
            var a = new { Id = 1, Name = "Bob" };
            TestMethod(a);

            Console.Out.WriteLine("Press enter to exit...");
            Console.In.ReadLine();
        }

        private static void TestMethod(Object x)
        {
            // This is a dummy value, just to get 'a' to be of the right type
            var a = new { Id = 0, Name = "" };
            a = Cast(a, x);
            Console.Out.WriteLine(a.Id + ": " + a.Name);
        }

        private static T Cast<T>(T typeHolder, Object x)
        {
            // typeHolder above is just for compiler magic
            // to infer the type to cast x to
            return (T)x;
        }
    }

Проверил, работает, может кому-то пригодится, а может кто-то знает способы сделать не так криво? :) Хотя многие пишут по данному вопросу "ждите c# 4.0, там все будет"
...
Рейтинг: 0 / 0
c# - обратиться к полям анонимнгог типа
    #36538936
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во и я про то же, просто нужно конкретно вопрос задавать, а не прикручивать к нему еще кучу левой информации :)

P.S. Можно и так решить задачу (без создания дополнительного инстанса):

Код: plaintext
1.
var a = new { Id = 1, Name = "Bob" };
int? id = a.GetType().GetProperty("Id").GetValue(a, null) as int?;

P.S2. То есть, передаете как object, а потом выдираете нужные проперти.
...
Рейтинг: 0 / 0
c# - обратиться к полям анонимнгог типа
    #36538988
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оффМожет тему куда перенести?
...
Рейтинг: 0 / 0
c# - обратиться к полям анонимнгог типа
    #36538996
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, тема явно для этого форума, а не для аспы

Модератор: Тема перенесена из форума "ASP.NET".
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# - обратиться к полям анонимнгог типа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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