RSCG – DudNet
| name | DudNet |
| nuget | https://www.nuget.org/packages/Jwshyns.DudNet/ |
| link | https://github.com/jwshyns/DudNet |
| author | jwshyns |
Generate proxy classes for the principal classes
This is how you can use DudNet .
The code that you start with is
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jwshyns.DudNet" Version="1.2.0" />
</ItemGroup>
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
</Project>
The code that you will use is
using DudNetDemo; var p = new Person(); var p1= new PersonProxy(p); p1.FirstName = "John"; p1.LastName = "Doe"; Console.WriteLine(p.FullName()); Console.WriteLine(p1.FullName());
using DudNet.Attributes;
using System.Runtime.CompilerServices;
namespace DudNetDemo;
[ProxyService]
public partial class Person : IPerson
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string FullName()
{
return FirstName + " " + LastName;
}
}
The code that is generated is
using System.Runtime.CompilerServices;
using DudNet.Attributes;
using System.Runtime.CompilerServices;
namespace DudNetDemo;
/// <inheritdoc cref="IPerson"/>
public partial class PersonDud : IPerson {
public string? FirstName {
get {
return (string?) default;
}
set {
}
}
public string? LastName {
get {
return (string?) default;
}
set {
}
}
public string FullName() {
return (string) default;
}
}
using System.Runtime.CompilerServices;
using DudNet.Attributes;
using System.Runtime.CompilerServices;
namespace DudNetDemo;
/// <inheritdoc cref="IPerson"/>
public partial class PersonProxy : IPerson {
private readonly IPerson _service;
public string? FirstName {
get {
Interceptor();
get_FirstNameInterceptor();
return _service.FirstName;
}
set {
Interceptor();
set_FirstNameInterceptor(value);
_service.FirstName = value;
}
}
public string? LastName {
get {
Interceptor();
get_LastNameInterceptor();
return _service.LastName;
}
set {
Interceptor();
set_LastNameInterceptor(value);
_service.LastName = value;
}
}
public string FullName() {
Interceptor();
FullNameInterceptor();
return _service.FullName();
}
partial void Interceptor([CallerMemberName]string callerName = null);
partial void get_FirstNameInterceptor();
partial void set_FirstNameInterceptor(string? value);
partial void get_LastNameInterceptor();
partial void set_LastNameInterceptor(string? value);
partial void FullNameInterceptor();
}
Code and pdf at
https://ignatandrei.github.io/RSCG_Examples/v2/docs/DudNet
Leave a Reply