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]

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 🙂

