部分代码未使用来自RIA服务

时间:2016-06-22 15:30:32

标签: c# .net wcf silverlight ria

这是一个暂时陷入困境的问题。我搜索了互联网的广度无济于事,终于要求SO寻求帮助。

我在VS2015中有一个完整的.NET堆栈程序集项目,我在其中实现了RIA域服务。 RIA服务通过WCF(HTTP)公开给Silverlight 5.0客户端项目,在该项目中它被引用为服务引用。这会触发Silverlight项目中RIA代理类的自动代码生成,该代码类在构建时发生。这个Silverlight项目是我引用此WCF RIA服务的唯一位置。 Silverlight项目本身由两个单独的Silverlight应用程序引用。

此Silverlight项目还包含扩展RIA代理类的部分类。构建其中一个Silverlight解决方案时,它经常(但不总是)为扩展RIA代理类的部分类抛出错误。生成的具有代理类的代码文件已经消失(我假设因为VS在重新创建它之前将其删除),并且部分类中的引用被破坏。

例如,这是一个RIA生成的代理类(仅显示ExaminationResult属性,否则会变得过长):

    public sealed partial class VCtp_DetailedResults : Entity
    {
        // ... more properties here

        /// <summary>
        /// Gets or sets the 'ExaminationResult' value.
        /// </summary>
        [DataMember()]
        [Editable(false, AllowInitialValue=true)]
        [Key()]
        [Required()]
        [RoundtripOriginal()]
        [StringLength(11)]
        public string ExaminationResult
        {
            get
            {
                return this._examinationResult;
            }
            set
            {
                if ((this._examinationResult != value))
                {
                    this.OnExaminationResultChanging(value);
                    this.ValidateProperty("ExaminationResult", value);
                    this._examinationResult = value;
                    this.RaisePropertyChanged("ExaminationResult");
                    this.OnExaminationResultChanged();
                }
            }
        }
    }

这是部分扩展:

namespace Apss.Data.Reports.Models
{
    public partial class VCtp_DetailedResults : IRow, IRowCtp, IRowCustomer
    {
        public bool IsVisible { get; set; }
        public bool IsSelected { get; set; }

        public string ExaminationResultLocalized
        {
            get { return LocalisationHelper.GetString(ExaminationResult); }
        }
    }
}

构建错误是:

enter image description here

正如您在此屏幕截图中看到的: enter image description here

我的假设是VS在构建过程中经历了至少两次编译迭代,一次是编译本地代码,另一次是生成和编译RIA代理代码。

  

我的问题:我如何确保构建不会破坏这些   部分代理类?

1 个答案:

答案 0 :(得分:1)

一种方法是生成代码<html> <head> <link type="text/css" rel="stylesheet" href="css/style.css"> </head> <body> <div class="menu"> <ul> <b> <li><a class="itens" href=#menu>Home</a></li> <li><a class="itens" href=#Projetos><img class="lampada" src="images/parceiros.png">Parceiros</a></li> <li><a class="itens" href=#LinksUteis><img class="lampada" src="images/links.png">Links Uteis</a> </li> <div class="4"> <a class="itens" href=#Blog> <div class="ljuntesse"> <img class="lampada" src="images/juntesse.png"> </div> <div class="tjuntesse"> <li>Junte-se a Nós</a></li> </div> </div> <a class="itens" href=#Contactos><img class="lampada" src="images/contactos.png"><li class="5">Contactos</li></a> </b> </ul> </div> </body> </html>并将其检入源代码,然后关闭RIA服务。

您可以在服务发生变化时启用RIA服务,就像服务更改时如何重新生成代理一样。