Raven 2.5'ten itibaren, dinamik nesneler için destek, çoğunlukla nesnelerin okuma tarafı için görünüyor ve , yalnızca okuma/çağırma uygulayan Raven.Abstractions.Linq.DynamicJsonObject
, çünkü varolan bir nesnede özellikleri ayarlamak o kadar kolay değil Dinamik sözleşmenin yöntemleri, TryGetMember
, TryGetIndex
ve TryInvokeMember
gibi. ancak TrySetMember
gibi öğelerin hiçbiri. Ancak, IDynamicJsonObject
'a yayın yaparsanız, işlem yapabileceğiniz iç RavenJObject
'a erişim sağlar.
Bu kod örneği nasıl göstermek gerekir:
using (var session = store.OpenSession())
{
dynamic entity = new ExpandoObject();
entity.Id = "DynamicObjects/1";
entity.Hello = "World";
session.Store(entity);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
var json = session.Load<dynamic>("DynamicObjects/1") as IDynamicJsonObject;
json.Inner["Name"] = "Lionel Ritchie";
json.Inner["Hello"] = "Is it me you're looking for?";
session.SaveChanges();
}
using (var session = store.OpenSession())
{
dynamic loadedAgain = session.Load<dynamic>("DynamicObjects/1");
Console.WriteLine("{0} says Hello, {1}", loadedAgain.Name, loadedAgain.Hello);
// -> Lionel Ritchie says Hello, Is it me you're looking for?"
}
Çok basit bir çözüm. Bu 'iç' nesneye ulaşmak için birçok yol denedim. Sadece IDynamicJsonObject’e atıldığını bilmiyordum, teşekkürler. – Quintonn