【问题标题】:Silverlight 3 Architecture and implementing DataAnnotations - AdivceSilverlight 3 架构和实现 DataAnnotations - 建议
【发布时间】:2009-10-02 17:44:29
【问题描述】:

我正在使用 Silverlight 3 和 ADO.NET 数据服务,其中包含自定义构建的模型(单独的项目)和 DAL(单独的项目))。在我的 Silverlight 项目中,我创建了一个 [Service Reference] 来引用我的 .svc 文件,该文件又指向我的模型。

这是我的问题:我想使用 DataAnnotations (System.ComponentModel.DataAnnotations) 的丰富功能,但我究竟将这些属性放在哪里?如果我使用这些注释通过模型进行装饰,我看不到它们在我的 [服务参考] 生成的代理代码中呈现。我只看到我的类及其成员,但没有 DataAnnotations (Reference.cs)。

我知道如果我手动更改 (Reference.cs) 文件并添加一些 DataAnnotations,这些更改会逐渐渗透到我的 Silverlight 客户端。我不认为我应该更新生成的代码,即带有 (Reference.cs) 的代理代码。所以,我的问题是,在我的分离项目(Web、SL、模型、DAL)的 Visual Studio 结构中,我应该抛出/扩展这个自定义数据源(模型)以利用 DataAnnotations 吗?

我想要这样的东西:

[Required]
public string FirstName
{
    get
    {
        return this._FirstName;
    }
    set
    {
        this.OnFirstNameChanging(value);
        this._FirstName = value;
        this.OnFirstNameChanged();
    }
}

【问题讨论】:

    标签: silverlight silverlight-3.0 wcf-data-services


    【解决方案1】:

    我有一个替换代码生成器,用于生成 ADO.NET 数据服务代理类并在我的 Niagara 项目中自动添加验证:

    http://niagara.codeplex.com

    【讨论】:

    • 感谢肖恩的回复。除了使用您的项目(下载代码并尝试构建后需要密码)之外,您能帮我解决我的问题吗?如何扩展代理服务生成的部分类来装饰我的成员?
    【解决方案2】:

    我认为查看this 文章可能会让您对肖恩发表评论的原因有所了解。你的问题的简短答案是。遵循 ModelView-View-Model (MVVM),silverlight 开发风格,然后在你的 Model 中的属性上放置 DataAnnotations,这是一个巨大的话题,你需要先阅读和理解它。我建议您查看 RIA 服务(我认为它现在称为 WCF 服务),如果您想将验证逻辑从 WCF 服务传播回客户端,这将帮助您很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      相关资源
      最近更新 更多