将类型为T的对象强制转换为类型T <system.guid> </system.guid>

时间:2009-05-29 12:11:37

标签: c# properties dynamic-typing

我继承了一个带有Windows移动部件的项目。长话短说,我的问题是:

[DBPropertyUpdate("CustomerId")]
[DBPropertyRetrieve("CustomerId")]
public CustomerBase<T> Customer
{
    get { return _customer; }
    set { _customer = SetProperty(_customer, value); }
}

抛出异常。

在观察窗口中,我有以下内容:

> NAME         VALUE                           TYPE

_customer   {Pss.Common.Mia.Customer}   Pss.Common.Mia.CustomerBase<System.Guid> {Pss.Common.Mia.Customer}
(Pss.Common.Mia.CustomerBase<System.Guid>)_customer Cannot convert type 'Pss.Common.Mia.CustomerBase<T>' to 'Pss.Common.Mia.CustomerBase<System.Guid>'  

我对这段代码并不熟悉,但希望能有一些简单的方法来转换'Pss.Common.Mia.CustomerBase<T>' to 'Pss.Common.Mia.CustomerBase<System.Guid>' seconcd Watch条目是我的尝试,你可以看到失败。

2 个答案:

答案 0 :(得分:1)

变量_customer键入CustomerBase&lt; Guid&gt;不可能被强制转换为CustomerBase&lt; T&gt;因为T不得而知。您还必须键入_customer作为CustomerBase&lt; T&gt;为了这个工作。

答案 1 :(得分:0)

通过将CustomerBase<Guid>作为类型传递给构建客户对象的函数

来实现它