CodeProcessor кажется старым способом сделать это, и я думаю, что он ограничен только созданием объектов. В более новых версиях мы можем указать генераторы на основе T4 для всех различных частей.
Установите RIAServices.T4 из Nuget в WebProejct или библиотеку классов, которая будет содержать код классы поколения. PM>Установить-Пакет RIAServices.T4
Если у вас уже есть набор инструментов, просто добавьте ссылку на «Microsoft.ServiceModel.DomainServices.Tools.TextTemplate».
Затем нам нужно наследоваться от CSharpClientCodeGenerator, который на самом деле ничего не генерирует, а просто сообщает RIA, какие генераторы использовать, переопределяя некоторые из его свойств.
[DomainServiceClientCodeGenerator("MyCustomGenerator", "C#")]
public class MyCSharpClientCodeGenerator : CSharpClientCodeGenerator
protected override Microsoft.ServiceModel.DomainServices.Tools.TextTemplate.DomainContextGenerator DomainContextGenerator
{
get
{
//return base.DomainContextGenerator;
return new MyDomainContextGenerator();
}
}
Затем мы говорим R# реализовать для нас этот класс (MyDomainContextGenerator), который должен наследоваться от CSharpDomainContextGenerator. Конечно, если вы используете R#, он сделает это за вас.
У вас есть еще 4 разных генератора кода, которые вы можете предоставить из MyCSharpClientCodeGenerator.
Теперь, чтобы все это подключить, в файле проекта Silverlight нам нужно сообщить RIA, чтобы он использовал наш генератор. Мы должны отредактировать проект Silverlight и добавить следующий элемент в первую группу свойств сразу после LinkedServerProject (порядок не имеет значения, я просто говорю это для справки).
<LinkedServerProject>..\SilverlightApplication2.Web\SilverlightApplication2.Web.csproj</LinkedServerProject>
<RiaClientCodeGeneratorName>
SilverlightApplication2.Web.RiaStuff.MyCSharpClientCodeGenerator,SilverlightApplication2.Web
</RiaClientCodeGeneratorName>
</PropertyGroup>
Перекомпилируйте проект Silverlight и вуаля. Это может рухнуть. Чтобы отладить это, мы можем открыть другой экземпляр Visual Studio, установить точки останова на генераторах в этом новом экземпляре, подключиться к первому экземпляру Visual Studio и перекомпилировать проект Silverlight.
person
Miguel Madero
schedule
17.05.2012