从系统类到自定义类的隐式运算符

时间:2012-05-14 14:31:14

标签: c# serialization

[编辑] :或者不...这实际上是正确的代码,传入的值确实为空。无视。

我正在尝试设置从DataRow到我的自定义SerializableData类的隐式转换。这是为了允许StateServer会话保存我们以前保留在DataRow对象中的数据。

我正在寻找从我的自定义类转换为外部类的资源:

http://msdn.microsoft.com/en-us/library/z5z9kes2(v=vs.71).aspx

class MyType 
{
   public static implicit operator int(MyType m) 
   {
      // code to convert from MyType to int
   }
}

但我需要反过来做。我试过了:

[Serializable]
public class SerializableData
{
    private Hashtable _table;
    public SerializableData(DataRow row)
    {
        _table = new Hashtable();
        foreach (DataColumn column in row.Table.Columns)
            _table.Add(column.ColumnName, row[column.ColumnName]);
    }

    public object this[string columnName]
    {
        get
        {
            return _table[columnName];
        }
        set
        {
            _table[columnName] = value;
        }
    }

    public static implicit operator SerializableData(DataRow row)
    {
        return new SerializableData(row);
    }
}

它编译,并在每次将DataRow分配给SerializableData属性时被调用......但是,'row'始终为null。这个论点没有传入。

有没有人以这种方式设置隐式转换?我还有另一种方法吗?

0 个答案:

没有答案