我正在使用 tcp/ip 构建通信系统。我正在使用 .NET、C# 和 VS2012。
这些系统在它们之间交换元数据。基本消息包含元数据名称及其值(数据本身)。一个系统不知道其他系统数据类型。
该消息具有以下结构:FromNode、ToNode、MetadataName、MetadataType、MetadataSizeInBytes、MetadataValue。所有消息都是带有分隔字段的纯字节[](未序列化,因为某些系统可以是 Unix 风格的)。
收到该消息时,我想根据元数据的类型将元数据与真实变量相关联。所以我建立了以下类:
公共类 RealMetadata
{
public string Type { get; set; }
public Type Value { get; set; } <<--- I´ve tried var and object, with no success.
}
稍后在代码中我想访问元数据的真正价值:
if (Type == "INTEGER")
int RealValue = (int) Value;
if (Type == "STRING")
string RealValue;
Buffer.Blockcopy (RealValue, 0, Value, 0, MetadataSizeInValues * sizeof (char));
if (Type == "FLOAT")
float RealValue = (float) Value;
整个事情有时无法编译或在运行时不起作用。我不确切知道应该在类属性上声明什么类型的值,以及如何将其数据获取到真实变量。
非常感谢您的任何想法或建议。
路数