Extension Data Get Value – Extension Data Olarak Gelen Veriyi Okumak

Merhabalar Arkadaşlar ,

Bugün webservisten veri çekerken sık karşılaşmadığım şekilde bir veri dönüşü oldu servisten ,Veriler servisin Keylerinde değil Extension Data Field ların içinde gelmekte idi,

mecburi olarak gelen veriyi parçalamak zorunda kaldım , bunun için kullandığım methodu sizlerle paylaşmak istedim.

Öncelik olarak gelen verinin şu şekilde gelmekteydi :

[raw] [/raw]

extention-data

 

Bu veriyi parçalamak için bu kullandığım fonksyon :

//



public string GetExtensionDataMemberValue(IExtensibleDataObject extensibleObject, string dataMemberName)
        {
            string innerValue = "";
            PropertyInfo membersProperty = typeof(ExtensionDataObject).GetProperty("Members", BindingFlags.NonPublic | BindingFlags.Instance);
            IList members = (IList)membersProperty.GetValue(extensibleObject.ExtensionData, null);

            foreach (object member in members)
            {
                var name = member.GetType().GetProperty("Name").GetValue(member);
                if (name.ToString() == dataMemberName)
                {
                    var value = member.GetType().GetProperty("Value").GetValue(member);
                    innerValue = value.GetType().GetProperty("Value").GetValue(value).ToString();
                    break;
                }
            }

            return innerValue;
        }



//

[raw] [/raw]

extensibleObject olarak webservis ten gelen listedeki objeyi veriyoruz , benim objem bu serviste ItemsSellingPrice idi .

dataMemberName olarak ta gelen datanın adını yazıyoruz .

Örneğin :

//

string BaseSellingPrice = GetExtensionDataMemberValue(itemPrice, "BaseSellingPrice")

//

[raw] [/raw]

Bu tarz bir durumla karşılaştığınızda hayat kurtaracak bir fonksiyon.

Umarım faydasını görürsünüz.

İyi günler 🙂

 

Print Friendly, PDF & Email

You may also like...

Bir cevap yazın