Şu anda şirketimin yazdığı özel bir uygulama için bir API yazmaktayım. Bunun bir kısmı, yayınlanan içeriği JSON biçiminde almayı içerir. Ipublishedcontent'i doğrudan seri hale getirmeyi denediğimde, açıkça gerek duymadığım tüm umbraco verilerini ve ilişkilerini serileştirmeye çalışır (aslında bir yığın taşmasıyla başarısız olur). Alanları belirten bir içerik öğesinden yalnızca özel özellikleri almanın bir yolu var mı?Yayınlanan içeriği umbraco serisinde yayınlama
Webapi kullanıyorum ve kendisini serileştirmek için nesneleri aktarıyorum ve alanları manuel olarak belirtmek için dinamik kullanıyorum. Başlangıçta seçtiğim ürün tipi, model oluşturucudan. Kodum şu anda biraz şuna benzer:
public object Get(string keywords = "")
{
// Get Data from Umbraco
var allProducts = Umbraco.TypedContent(1100).Children.Select(x => new Product(x));
if (keywords != "")
{
allProducts = allProducts.Where(x => x.Name.Contains(keywords));
}
return allProducts.Select(x => new
{
id = x.Id,
name = x.Name,
price = x.Price
});
}
Orada istediğim sadece alanları ile dinamik oluşturmak zorunda kalmadan bunu yapmanın basit bir yolu olmalı ama bunu dışarı çalışamaz geliyor bana . Umbraco'daki belge tipi her değiştiğinde kodumu değiştirmek zorunda kalmak istemiyorum!
Belge türünde bir alan her değiştiğinde bir sınıf oluşturmamı gerektirmez mi? Buradaki nokta, belge tipi her değiştiğinde projeyi yeniden derlemek zorunda kalmadan belgenin herhangi bir yararlı alanını dinamik olarak çıkarmaktır. –
7.4 ile paketlenmiş Model Oluşturucuyu kullanabilirsiniz. Her belge türü için otomatik olarak sınıf oluşturur. –
Başka bir seçenek IPublishedContent özellik koleksiyonu arasında döngü yapmak ve diğer adlara + değerlerini bir sözlüğe eklemek olacaktır. Json'da bir nesne gibi çıktılar. –