部分代码未使用来自 RIA 服务的(重新)生成的代码进行编译
Posted
技术标签:
【中文标题】部分代码未使用来自 RIA 服务的(重新)生成的代码进行编译【英文标题】:Partial code not compiling with (re)generated code from RIA service 【发布时间】:2016-10-24 15:45:13 【问题描述】:这是一个困扰我一段时间的问题。我在网上搜索了很多东西都没有结果,最后来寻求帮助。
我在 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);
构建错误是:
正如您在此屏幕截图中看到的:
我的假设是 VS 在构建期间至少经过两次编译迭代,一次编译本地代码,另一次生成并编译 RIA 代理代码。
我的问题:我如何确保构建不会因这些而中断 部分代理类?
【问题讨论】:
部分代理类不是问题。这是因为没有生成基类之一。 Silverlight 的自动代理生成是一个好主意,但它很不稳定,并且每次您接触服务器代码时都会减慢构建速度,即使它不相关也是如此。 @ChuiTey 感谢您的评论。有关解决方案或解决方法的任何建议? 一种方法是获取生成的代码.g.cs
并将其签入源代码,然后关闭RIA服务。
这是一个可行的解决方法。谢谢!
@ChuiTey 成功了。 :) 你想把它作为答案归档吗?否则我会写一个。
【参考方案1】:
一种方法是获取生成的代码.g.cs
并将其签入源代码,然后关闭RIA 服务。
您可以在服务更改时打开 RIA 服务,就像在服务更改时重新生成代理一样。
【讨论】:
以上是关于部分代码未使用来自 RIA 服务的(重新)生成的代码进行编译的主要内容,如果未能解决你的问题,请参考以下文章
WCF 服务、WCF RIA 服务和 WCF 数据服务之间的区别
java 来自http://ria10.hatenablog.com/entry/20121222/1356153903