具有不同值类型的派生类

时间:2020-03-30 08:04:11

标签: c# polymorphism

我正面临一种设计难题。 您将如何解决?

我通过UDP收到了一个字节[]的数据包。然后,我将此数组解析为一个数据包对象。该数据包具有几个属性(例如,用户名,密码,时间戳记)。

所以我写了一个属性解析器,将byte []解析为一个属性对象。 该属性具有不同的属性,例如AttributeId和Value。 问题是:这些 value属性可以具有不同的 types (例如,用户名和密码的类型为ascii字符串,时间戳的类型为long等)。

出于身份验证的目的,在某些时候将这些属性与数据库中的条目进行比较,仅在这一点上重要的是确切知道它是什么类型。

我曾考虑过从抽象的Attribute类派生,但是由于值类型不同,所以没有太大帮助。

您通常如何处理这种情况?

编辑: 邮件的发件人不受我的控制,并跟随RFC 2865。 消息看起来像的例子。

  • 第一个字节-消息类型代码
  • 下一个字节-客户端ID
  • 后2个字节-消息长度(字节数)
  • 后16个字节-伪随机令牌
  • 其余字节-请求属性

这些属性都遵循此格式。

  • 第一个字节-属性类型(这定义了值的类型)

  • 下一个字节-属性长度(字节数)

  • 其余字节-值

0 个答案:

没有答案