Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#的运行时向对象添加属性?_C#_Oop - Fatal编程技术网

如何在C#的运行时向对象添加属性?

如何在C#的运行时向对象添加属性?,c#,oop,C#,Oop,我有两个不同的清单。我想将这些列表合并到一个对象中。我不知道这些列表中的属性名称,这就是为什么我不能提前创建类的原因 public class exampleConfigProperty { public string PropertName { get; set; }; public string PropertValue { get; set; }; } public class exampleFile { public string config1 { get; set; }

我有两个不同的清单。我想将这些列表合并到一个对象中。我不知道这些列表中的属性名称,这就是为什么我不能提前创建类的原因

public class exampleConfigProperty
{
  public string PropertName { get; set; };
  public string PropertValue { get; set; };
}

public class exampleFile
{
  public string config1 { get; set; };
}

List<exampleConfigProperty> myList = new List<exampleConfigProperty>();
myList.add(new exampleConfigProperty { 
  PropertName = "Config_Property_Name", 
  PropertValue = "Config Property Value" 
});

List<exampleFile> myListTwo = new List<exampleFile>();
myListTwo.add(new exampleFile {
  config1 = "Config Value" 
});
总之,我尝试使用两个列表创建一个对象实例, 例如:

var resut = new { 
  Config_Property_Name = "Config Property Value", 
  config1 ="Config Value" 
}

dynamic
类型不起作用,因此我应该如何使用两个列表来获取对象实例?

既然您只想制作一个符合您标准的JSON:

var test=new Dictionary();//对于混合类型的值
测试[“键1”]=“值1”;
测试[“键2”]=“值2”;
var result=JsonConvert.SerializeObject(测试)//缩进以确保结果的可读性
//结果:
// {
//“键1”:“值1”,
//“键2”:“值2”
// }

动态
听起来很可能满足您的需求。当你说“不行”时,你到底是什么意思?你尝试了什么,出了什么问题?它会认为这将是一个更合适的解决方案,无论您在上面的代码中尝试做什么(我并不完全清楚其目的)。听起来您可能想使用类型为
dictionary
的字典,而从技术上讲,可以创建具有动态属性名称的动态对象,当您想要使用这些属性时,真正的问题就出现了,这正是因为您不知道使用哪个属性名称来访问该属性。@404提出的字典方法是可行的,其中属性名被用作字典中的键。这允许您通过字符串变量中给定的属性名称获取值。这种愿望几乎总是由于设计过程中的早期错误造成的。。。例如,缺少接口。如果您只想从它生成JSON(而不想执行其他任务),则可以使用newtonsoft的JObject和相关类构建动态结构。
var resut = new { 
  Config_Property_Name = "Config Property Value", 
  config1 ="Config Value" 
}