在试图保存RavenDB中具有动态属性的对象时,我遇到了问题
我试图保存的对象表示一个订单。订单包含一个订单行列表,因此假设下面的order类:
public class Order {
public int Id { get; set; }
public List<Orderline> Orderlines { get; set; }
}
Orderline类是:
public class Orderline {
public Product Product { get; set; }
public int Quantity { get; set;
我有以下代码,其中page.Fields是ExpandoObject。我正在迭代一些用户定义的属性,并将它们添加到Expando中,强制转换到IDictionary<string,string>以允许我动态地添加新的字段名/值,但是当我将Fields属性设置为props值时,序列化之后只会给出带有{}空白值的名称。为什么?
page.Fields.Foo = "asdf";
var test = JsonConvert.SerializeObject(page); // shows Foo=asdf in the json
// attach all fields
例如,我经常需要用一个属性来扩充一个对象。直到现在(厌倦了它;)它也是丑陋的)我是这样做的:
var someListOfObjects = ...;
var objectsWithMyProperty = from o in someListOfObjects
select new
{
o.Name, /* Just copying all the attributes I need */
我正在尝试编写一个通用实用程序,以便通过.NET外部的COM使用(/skip长篇小说)。无论如何,我正在尝试向ExpandoObject添加属性,并且需要将PropertyInfo结构传递回另一个例程。
using System.Collections.Generic;
using System.Diagnostics;
using System.Dynamic;
using System.Reflection;
public class ExpandoTest
{
public string testThis(string cVariable)
{
stri
我正在尝试使用ExpandoObject作为PropertyGrid的SelectedObject。我知道如何将我想要的属性添加到ExpandoObject中:
public dynamic MakePropertyObject()
{
dynamic expando = new ExpandoObject();
var dictionary = expando as IDictionary<string, object>;
foreach(MyClass m in PropertiesINeedToAdd)
dictionary[m.Nam
我有一个物体 public class GeneralResponseClass
{
public int ErrorCode { set; get; }
public string Date { set; get; }
public String ErrorMessage { set; get; }
public List<dynamic> Data = new List<dynamic>();
public bool Success { set; get; }
public GeneralResponseClass
使用ExpandoObject,是否可以使用类型化属性对类进行子类化,并且只动态添加在运行时出现的属性? class TypedProperties
{
public int KnownIntProperty { get; set; }
public string KnownStringProperty { get; set; }
} 想象一下,在我的代码中,我必须动态地添加一个属性SecondStringProperty,但仍然想要利用TypedProperties。我该怎么做呢?
我正在尝试创建对象的动态列表,因为在从文件中读取对象之前,我不知道对象将具有哪些属性。
因此,假设我的对象的属性包含在一个数组中(例如FirstName、LastName、Email)。
我想创建具有上述属性的动态对象,名为Recipient。然后,我想创建一个列表,并将其中一些对象添加到该列表中。
到目前为止,我已经完成了以下操作,但我不确定这是否是为动态对象分配属性的正确方式(“field”是数组的名称):
var persons = new List<dynamic>();
dynamic Recipient = new ExpandoObject() as IDiction
最近,我不得不在我的应用程序中使用ExpandoObject,所以我想知道如何使用我的旧Mapper也可以从动态ExpandoOnjects映射,因为有些情况下它不映射来自Expando的字段和属性。
码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
public class Mapper
{
private static readonly Dictionary<KeyValuePair<Type, Type>, object&g
我最近注意到我们的一个应用程序中有一个奇怪的行为。 Exception=System.InvalidCastException: Unable to cast object of type 'System.Data.SqlClient.SqlTransaction' to type 'System.Byte[]'.
at ServiceStack.Text.Pools.BufferPool.GetCachedBuffer(Int32 minSize) in C:\BuildAgent\work\912418dcce86a188\src\ServiceSt
如何将prop1和prop2从json转换为ExpandoObject语法?它们有一个开口{和closing },我不知道如何用ExpandoObject语法表示它。
{
"prop1": {
"prop2": {
"prop3": "value3",
"prop4": "value4"
}
}
}
// I need to convert the json to something like this
// but cannot figure out t
我有一个名为Attributes的类
public class Attributes
{
public string Length { get; set; }
public string Size { get; set; }
public string Color { get; set; }
public string Material { get; set; }
public string Diameter { get; set; }
}
此类由对返回JSON的web服务的调用填充。web服务每次返回一组不同的属性,并且不可能在编译时定义所有属性,因为
我从Dapper查询返回了两个集合
Table1_Collection = Query<dynamic>("SELECT * FROM Table1"); // I can make Select T1, *
Table2_Collection = Query<dynamic>("SELECT * FROM Table2"); // I can make Select T1, *
请参阅上面的注释,我可以通过添加SelectQuerySelectT1来修复它。但是如何在.NET集合中做到这一点。
现在我需要合并这两个集合:
L
我有一个动态列表,其中包含ExpandoObject作为条目:
List<dynamic> list = new List<dynamic>();
foreach (...)
{
var dynamicObject = new ExpandoObject() as IDictionary<string, Object>;
...
list.Add(dynamicObject);
}
如何在动态列表中使用.Sum()?我知道该列表属性的名称,但Sum()不使用字符串作为参数。
谢谢