Мне нужно вставить общий набор кода в метод Get для всех сущностей, созданных мастером RIA Domain Service. Можно ли переопределить генерацию кода мастера службы домена, чтобы я мог автоматически вставить этот код?
Спасибо, Анкур
Существует также отличное сообщение в блоге , написанное Стефаном Крайсбергсом на эту тему.
Он использует 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(); } } }
Вы можете определенно изменять и редактировать (или даже писать свои) шаблоны T4, которые отвечают за генерацию кода ... что-то вроде этих двух ссылок:
Генератор кода T4 для служб RIA WCF
Использование T4 для изменения способа работы служб RIA
Кроме того, вы можете проверить шаблон T4 для служб RIA (на стороне сервера) из проекта WCF RIA Services Contrib на CodePlex , который позволяет вам изменять методы GET следующим образом:
public IQueryable<<#= Entity.Name #>> Get<#= Entity.Name #>() { //Inject Custom code here return this.ObjectContext.<#= Entity.Mapping.StoreEntitySet #>; }