C# 获取hastable中类的属性

C# 获取hastable中类的属性,c#,hashtable,C#,Hashtable,我有一个哈希表,将字符串保存为键,并将类保存为详细信息,现在我需要详细访问类的成员。我有这样的代码: private readonly Hashtable _data = new Hashtable(); public ResultStatus Register<T,T1,T2>( T dataT, T1 dataT1,T2 dataT2 ) { if( _data.ContainsKey( dataT ) ) { return ResultStatus

我有一个哈希表,将字符串保存为键,并将类保存为详细信息,现在我需要详细访问类的成员。我有这样的代码:

private readonly Hashtable _data = new Hashtable();
public ResultStatus Register<T,T1,T2>( T dataT, T1 dataT1,T2 dataT2 ) 
{      
  if( _data.ContainsKey( dataT ) )
  {
    return ResultStatus.DuplicateData;
  }
  var dataItem = new DataItem<T,T1,T2>( dataT,dataT1,dataT2 );
  if( !_validatorManager.IsValid( (int)(object)dataT2 ) )
  {
    return ResultStatus.ContentError;
  }
  _data.Add( dataT, dataItem );
  return ResultStatus.Success;
}
private readonly哈希表_data=new Hashtable();
公共结果状态寄存器(T dataT、T1 DATT1、T2 DATT2)
{      
if(_data.ContainsKey(dataT))
{
返回ResultStatus.DuplicateData;
}
var dataItem=新的dataItem(dataT、dataT1、dataT2);
if(!\u validatorManager.IsValid((int)(对象)dataT2))
{
返回ResultStatus.ContentError;
}
_data.Add(dataT,dataItem);
返回结果状态。成功;
}
和我的DataItem类:

public class DataItem<T,T1,T2>
  {
    public T ItemName { get; set; }
    public T1 ItemContent { get; set; }
    public T2 ItemType { get; set; }

    public DataItem( T name, T1 content, T2 type )
    {
      ItemName = name;
      ItemContent = content;
      ItemType = type;      
    }
}
公共类数据项
{
公共T ItemName{get;set;}
公共T1项内容{get;set;}
公共T2项类型{get;set;}
公共数据项(T名称、T1内容、T2类型)
{
ItemName=名称;
项目内容=内容;
ItemType=类型;
}
}
以及另一个用于检索其内容的类:

public Tuple<ResultStatus, T1> GetType<T,T1>( T itemName )
{

  if( !_data.ContainsKey( itemName ) )
  {
    return new Tuple<ResultStatus, T1>( ResultStatus.Success, ( T1 ) ( object ) 0 );
  }
  else
  {
    return new Tuple<ResultStatus, T1>( ResultStatus.Success, _data[itemName].ItemType ); ==> ?? //Here .ItemType not shown
  }
}
公共元组GetType(T itemName)
{
如果(!\u data.ContainsKey(itemName))
{
返回新元组(ResultStatus.Success,(T1)(object)0);
}
其他的
{
返回新元组(ResultStatus.Success,_data[itemName].ItemType);==>??//此处未显示ItemType
}
}

我如何访问DataItem类上的ItemType???

有什么原因你不使用
字典而不是
哈希表吗?
?不仅仅是DataItem类,所以我想要更动态的,如果有任何类作为数据传输对象,我可以使用它我的代码而不更改内部代码,我不能真正评论,我觉得这个设计有点奇怪。似乎您只是希望能够存储任意对象,那么为什么不让用户指定对象的类型,而不是
T1
&
T2
?所有这些强制转换的进行意味着可能有些不正确。是的,我的代码是错误的:D,我想要的是用DataItem类作为数据传输对象向集合(哈希表、字典等)注册一些数据,但我想要DataItem类是动态的,所以不能只接受整数或字符串,这就是为什么我在dto类中使用泛型的原因看起来你的设计有问题。。。也许您可以省略使用
ItemType
属性,而在代码中使用
GetType()