Как привести из списка объектов в другой список. - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть интерфейс [BindControls], который берет данные из GUI и сохраняет их в списке «ieis».

После этого, в другой класс, который отправляет эти данные через WebServices, я хочу взять эти данные из «ieis» и поместить их в требуемые поля класса WS (внизу - фрагмент кода)

Это интерфейс:

void BindControls(ValidationFrameBindModel<A.B> model)
        {
            model.Bind(this.mtbxTax, (obj, value) =>
            {
                var taxa = TConvertor.Convert<double>((string)value, -1);

                if (taxa > 0)
                {
                    var ieis = new List<X>();

                    var iei = new X
                    {
                        service = new ServiceInfo
                        {
                            id = Constants.SERVICE_TAX
                        }, 
                        amount = tax,
                        currency = new CurrencyInfo
                        {
                            id = Constants.DEFAULT_CURRENCY_ID
                        }
                    };
                    ieis.Add(iei);
                }
            },"Tax");
        }

Это промежуточное свойство:

// **********

class A 
{
  public B BasicInfo
        {
            get;
            set;
        }

 class B
        {

            public X Tax
            {
                get;
                set;
            }
        }
}

// ***********

Это класс, который отправляет через WS:

void WebServiceExecute(SomeType someParam)
        {
//into ‚iai’ i store the data which comes from interface

            var iai = base.Params.FetchOrDefault<A>( INFO, null);

            var convertedObj = new IWEI();
            //...            
            var lx = new List<X>();

 //1st WAY: I tried to put all data from ‚Tax’into my local list ‚lx’
            //lx.Add(iai.BasicInfo.Tax); - this way is not working

    //2nd WAY: I tried to put data separately into ‚lx’ 
            var iei = new X
            {
                service = new ServiceInfo
                {
                    id = iai.BasicInfo.Tax.service.id
                },
                amount = iai.BasicInfo.Tax.amount,
                currency = new CurrencyInfo
                {
                   id = iai.BasicInfo.Tax.currency.id
                }
            };

            lx.Add(iei);

// but also is not working

Можете ли вы помочьпожалуйста, предложите, как реализовать способ, который будет хорошо выполнять работу (взять данные из «ieis» и поместить ее в «lx»).Большое вам спасибо

1 Ответ

1 голос
/ 22 сентября 2011

Как отмечается в моем комментарии, похоже, что iai.BasicInfo.Tax имеет значение null, как только вы выясните, почему оно равно NULL, ваш оригинальный Add() (# 1) будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...