我需要在RIA域服务向导生成的所有实体的Get方法中插入一组通用代码。是否可以覆盖域服务向导的代码生成,以便我可以自动插入该代码?
谢谢, ANKUR
答案 0 :(得分:0)
您绝对可以修改和编辑(甚至编写自己的)负责代码生成的T4模板......这两个链接的内容如下:
T4 Code Generator for WCF RIA Services
Using T4 to change the way RIA services work
此外,您可以从WCF RIA Services Contrib project on CodePlex检查RIA服务(服务器端)的T4模板,该模板允许您修改GET方法,如下所示:
public IQueryable<<#= Entity.Name #>> Get<#= Entity.Name #>()
{
//Inject Custom code here
return this.ObjectContext.<#= Entity.Mapping.StoreEntitySet #>;
}
答案 1 :(得分:0)
Stefan Cruysberghs还写了一篇great blog-post来讨论这个话题。
他正在使用RIAServices.T4 nuget-package修改客户端生成的代码。引用的文章非常详细地介绍了这一点,但其实质如下:
使用预定义的基类
实现您自己的代码生成器public class MyDomainContextGenerator : CSharpDomainContextGenerator
{
protected override void GenerateClassDeclaration()
{
// Add something before the class generation here...
base.GenerateClassDeclaration();
}
}
建议RIAServices通过属性类使用该生成器:
[DomainServiceClientCodeGenerator("MyCodeGenerator", "C#")]
public class MyCodeGenerator : CSharpClientCodeGenerator
{
protected override DomainContextGenerator DomainContextGenerator
{
get { return new MyDomainContextGenerator(); }
}
}