Как получить значения из переменной типа Object в c # - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть переменная типа Object, которая является typeof InquireSubscription

public class InquireSubscription: object, System.ComponentModel.INotifyPropertyChanged 
{
    public string planId {get; set}
}

Я хочу получить значение planId, но я полностью застряла в поиске, как получить доступ к свойствам из объекта Object

Пожалуйста, посмотрите на снимок экрана:

enter image description here

EDITED eligibilityResult имеет тип SubscriptionEligibility

    public partial class SubscriptionEligibility: object, System.ComponentModel.INotifyPropertyChanged 
    {
         private object[] itemsField;

        [System.Xml.Serialization.XmlElementAttribute("InquireSubscription", typeof(SubscriptionEligibility), Order=0)]

        [System.Xml.Serialization.XmlElementAttribute("DeviceEligibilityResult", typeof(SubscriptionEligibility), Order=0)]

       public object[] Items {
           get {
             return this.itemsField;
           } 
           set {
              this.itemsField = value;
              this.RaisePropertyChanged("Items");
           }
        }

1 Ответ

2 голосов
/ 02 апреля 2019

Вы можете использовать LINQ:

foreach (var item in eligibilityResult.Items.OfType<InquireSubscription>())
{
    item.planId = ...;
}

При этом будут игнорироваться любые предметы, которые не являются InquireSubscription или подклассом. Используйте Cast (), если хотите убедиться, что это не так:

foreach (var item in eligibilityResult.Items.Cast<InquireSubscription>())
{
    item.planId = ...;
}

Если у вас есть код SubscriptionEligibility, вместо этого вы должны попытаться изменить его, чтобы не использовать object, если возможно

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