【发布时间】:2011-09-07 07:14:06
【问题描述】:
最近我一直在从事 Silverlight 项目,其中有一个位于 *File.Web.g.cs 的自动生成类,其定义:
[DataContract(Namespace="http://schemas.datacontract.org/2004/07/Project.Web.Models")]
public sealed partial class SwitchDevice : Entity
{
/// <summary>
/// Gets or sets the 'ID' value.
/// </summary>
[DataMember()]
[Editable(false, AllowInitialValue=true)]
[Key()]
[RoundtripOriginal()]
public int ID
{
get
{
return this._id;
}
set
{
if ((this._id != value))
{
this.OnIDChanging(value);
this.ValidateProperty("ID", value);
this._id = value;
this.RaisePropertyChanged("ID");
this.OnIDChanged();
}
}
}
}
我想做的是让SwitchDevice 实现IDevice 接口。代码位于另一个名为IDevice.cs 的文件中。我决定像这样扩展部分类:
namespace Project.Web.Models
{
public interface IDevice
{
int ID
{
get;
set;
}
}
public partial class SwitchDevice : IDevice
{
}
}
由于某种原因,VS2010 看不到位于 Web.G.CS 文件中的定义并生成错误:
'Project.Web.Models.SwitchDevice' 没有实现接口 成员 'Project.Web.Models.IDevice.ID' PATH\Project\Interfaces\ISwitchDevice.cs
我浏览并阅读了很多网页,但我还没有真正发现类似的问题。也许我做错了,我不是专家。
是否有可能完成这项工作?提前感谢您的任何提示和帮助!
【问题讨论】:
-
你101%确定生成的类也在命名空间
Project.Web.Models中吗? -
假设错误消息是逐字复制的,它是...
-
@jeroenh:不,你不能推断出来。错误消息指的是第二个代码片段中的类。我指的是第一个片段中的类(自动生成的)。
-
这种模式(在设计器生成的部分类上实现接口)肯定适用于常规 .Net,所以问题可能与 Silverlight 有关。
-
@Jon 同意,对此感到抱歉
标签: c# c#-4.0 silverlight-4.0 entity partial-classes