c# - 使自动生成的部分类实现自定义接口(interface)

标签 c# c#-4.0 silverlight-4.0 entity partial-classes

最近我一直在开发一个 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 接口(interface)。代码位于另一个名为 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' does not implement interface member 'Project.Web.Models.IDevice.ID' PATH\Project\Interfaces\ISwitchDevice.cs

我浏览并阅读了很多网页,但我还没有真正发现类似的问题。也许我只是做错了,我不是专家。

甚至有可能使这项工作成功吗?预先感谢您提供任何提示和帮助!

最佳答案

你尝试做的很好,我一直在做。

确保在同一个命名空间和同一个项目中有两个部分类定义文件。您使用该类实现的接口(interface)可能在另一个程序集中,或者您失去了部分优势,并且无论如何都必须从调用代码中引用您的 dal,这是您设计可以给您的一件事;与 DAL 隔离并针对接口(interface)进行编码。

关于c# - 使自动生成的部分类实现自定义接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330130/

相关文章:

mvvm - 有没有办法在 Silverlight 中的控件中进行简单验证

image - Silverlight 应用程序图像在运行时不显示

C# 字符串比较不起作用

multithreading - 对具有极高消息速率的应用程序进行多线程处理(我应该使用哪种方法?)

c# - MySQL 和 C#.NET DataGridView、更新、插入和删除

asp.net - 以编程方式将主机 header 添加到 IIS 7 上的网站

Silverlight 工具包 Accordion 错误?

c# - MVC ActionLink 将路由附加为查询字符串而不是路由值

c# - 如何在 .net 解决方案中有两个项目,一个针对 4.0 框架,另一个针对 4.5 框架?

c# - 从 Excel 文件中删除密码——无需在我的服务器上安装 Excel