我有一个第三方应用程序,它为对象提供了许多"属性",它们只是(字符串)键和值的对.值类型可以是字符串,DateTime,Int32或Int64.
我需要创建自己的类来以方便的方式表示此对象.我正在创建一个向客户端提供此对象的WCF服务,因此我需要它非常简单和干净.
属性的键将显示为客户端的枚举(以隐藏第三方应用程序的特定键字符串的信息).但是,我不确定如何表示这些值.以下是一些选项:
选项1:每个属性值有不同的集合,看起来很难看,但客户很容易使用
public class MyObject
{
public Dictionary<MyTextAttributeKeysEnum, string> TextAttributes { get; set; }
public Dictionary<MyDateAttributeKeysEnum, DateTime> DateAttributes { get; set; }
public Dictionary<MyNumAttributeKeysEnum, long> NumericAttributes { get; set; }
public string Name { get; set; }
public string Id{ get; set; }
Run Code Online (Sandbox Code Playgroud)
选项2:将所有属性转换为字符串
public class MyObject
{
public Dictionary<MyAttributeKeysEnum, string> MyAttributes { get; set; }
public string Name { get; set; }
public string Id{ get; set; }
Run Code Online (Sandbox Code Playgroud)
选项3:将它们保留为对象,让客户为铸造和转换而烦恼
public class MyObject
{
public Dictionary<MyAttributeKeysEnum, object> MyAttributes …Run Code Online (Sandbox Code Playgroud) 我有一个以编程方式生成的powershell数组对象,数组内部的数组,数组内部,有时称为"属性包"或"哈希表",但我认为它在本机上称为"包含数组的数组"术语.
例如:
@{
Version = '1.0.0'
Name = 'thing'
Revision = 'c3a89cd20e19bb82f41e95e0806edc5b6cfd224e'
Date = '2016-12-09'
Build = '1234'
Contents = @{
"index.html" = "23dd7b993f40bb3ae8848fe104b3b767"
}
}
Run Code Online (Sandbox Code Playgroud)
生成一个只将一个特定内容集保存到.PSD1文件的函数似乎不够通用.我想将精确的内存中数组结构保存到PSD1文件中.Powershell中是否存在任何内置方式来保持具有上述值的内存变量?的"对立功能" Import-PowershellDataFile.我猜它会被调用,Export-PowershellDatafile但似乎不存在这样的功能.
我试图自动克隆一个对象,而不必实例化一个新的并手动复制每个变量.
我记得当天(当我每天都做VB6时)我想出了一种使用PropertyBag克隆对象的方法,这非常酷.但是我丢失了代码,不记得怎么做了.
有没有人记得或有另一种方法?
访问像javascript语言这样的c#类属性会让生活变得更轻松.
我们如何在C#中做到这一点?
例如:
someObject["Property"]="simple string";
Console.WriteLine(someObject["FirstName"]);
Run Code Online (Sandbox Code Playgroud) 我试图理解NancyFX中的DynamicDictionary,它看起来很酷.有没有人知道一篇博文或类似文章,它是通过内部的?
我需要一个propertybag来传递对象,我不知道它们的内容,因为它们来自我的系统之外的JSON.但是基于这些对象的内容,比如我需要做某些属性的存在.
我可以绕过动态对象,但我认为这有点过于模糊.真的不喜欢那样.
我需要嵌套字典,以完全代表对象图.
propertybag ×5
c# ×3
arrays ×1
clone ×1
dynamic ×1
hashtable ×1
indexer ×1
nancy ×1
oop ×1
powershell ×1
properties ×1
reflection ×1
vb6 ×1
wcf ×1