CodeProcessor는이를 수행하는 옛 방식처럼 보이고 엔티티 생성에만 제한적이라고 생각합니다. 최신 버전에서는 모든 다른 부분에 대해 T4 기반 Generators를 지정할 수 있습니다.
WebProjjct에 Nuget의 RIAServices.T4을 설치하거나 코드 생성 클래스가 포함될 클래스 라이브러리를 설치하십시오. PM> 설치 - 패키지 RIAServices.T4을
이미 툴킷이있는 경우, 다만
그런 다음 우리는 아무튼 CSharpClientCodeGenerator, 상속해야하는 기준을 "Microsoft.ServiceModel.DomainServices.Tools.TextTemplate"를 추가 실제로는 아무 것도 생성하지 않지만 RIA에게 어떤 발전기가 그 속성 중 일부를 재정 의하여 사용하도록 지시합니다.
[DomainServiceClientCodeGenerator("MyCustomGenerator", "C#")]
public class MyCSharpClientCodeGenerator : CSharpClientCodeGenerator
protected override Microsoft.ServiceModel.DomainServices.Tools.TextTemplate.DomainContextGenerator DomainContextGenerator
{
get
{
//return base.DomainContextGenerator;
return new MyDomainContextGenerator();
}
}
그런 다음 우리는 우리를 위해 CSharpDomainContextGenerator에서 상속하는 (MyDomainContextGenerator를) 클래스를 구현하는 R 번호를 알려줍니다. 물론 R #을 사용하면 그냥 해줄 것입니다.
MyCSharpClientCodeGenerator에서 제공 할 수있는 다른 4 가지 코드 생성기가 있습니다.
이제 Silverlight 프로젝트 파일에서 RIA에 생성기를 사용하도록 알릴 필요가 있습니다. 우리는 Silverlight 프로젝트를 편집하고 LinkedServerProject 바로 뒤에 첫 번째 PropertyGroup 안에 다음 요소를 추가해야합니다 (순서는 중요하지 않습니다. 단지 참조로 말합니다).
<LinkedServerProject>..\SilverlightApplication2.Web\SilverlightApplication2.Web.csproj</LinkedServerProject>
<RiaClientCodeGeneratorName>
SilverlightApplication2.Web.RiaStuff.MyCSharpClientCodeGenerator,SilverlightApplication2.Web
</RiaClientCodeGeneratorName>
</PropertyGroup>
Silverlight 프로젝트와 voila를 다시 컴파일하십시오. 그것은 추락 할 수도 있습니다. 이를 디버깅하기 위해 Visual Studio의 다른 인스턴스를 열고이 새 인스턴스에서 생성기에 중단 점을 설정하고 Visual Studio의 첫 번째 인스턴스에 연결 한 다음 Silverlight 프로젝트를 다시 컴파일 할 수 있습니다.