ProxyInterfaceGenerator 0.1.0
dotnet add package ProxyInterfaceGenerator --version 0.1.0
NuGet\Install-Package ProxyInterfaceGenerator -Version 0.1.0
此命令旨在在Visual Studio的包管理器控制台中使用,因为它使用NuGet模块的Install-Package的版本。
<PackageReference Include="ProxyInterfaceGenerator" Version="0.1.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
对于支持PackageReference的项目,将此XML节点复制到项目文件中以引用软件包。
paket add ProxyInterfaceGenerator --version 0.1.0
NuGet团队不提供对该客户端的支持。请联系其维护者以获得支持。
#r "nuget: ProxyInterfaceGenerator, 0.1.0"
#r指示符可以在F# interactive和Polyglot notebooks中使用。将其复制到交互式工具或脚本的源代码中,以引用软件包。
// Install ProxyInterfaceGenerator as a Cake Addin #addin nuget:?package=ProxyInterfaceGenerator&version=0.1.0 // Install ProxyInterfaceGenerator as a Cake Tool #tool nuget:?package=ProxyInterfaceGenerator&version=0.1.0
NuGet团队不提供对该客户端的支持。请联系其维护者以获得支持。
使用方法
给定:一个外部现有类,它不实现接口
public sealed class Person
{
public string Name { get; set; }
public string HelloWorld(string name)
{
return $"Hello {name} !";
}
}
创建一个部分接口 用ProxyInterfaceGenerator.Proxy[...]
注解,并标注需要包装的类型
[ProxyInterfaceGenerator.Proxy(typeof(ProxyInterfaceConsumer.Person))]
public partial interface IPerson
{
}
当编译代码时,此源生成器创建以下两个项目
1. 一个额外的部分接口 定义与外部类相同的属性和方法。
public partial interface IPerson
{
string Name { get; set; }
string HelloWorld(string name);
}
2. 一个代理类 在构造函数中接受外部类,并包装所有属性和方法。
public class PersonProxy : IPerson
{
public Person _Instance { get; }
public PersonProxy(Person instance)
{
_Instance = instance;
}
public string Name { get => _Instance.Name; set => _Instance.Name = value; }
public string HelloWorld(string name)
{
string name_ = name;
var result_19479959 = _Instance.HelloWorld(name_);
return result_19479959;
}
}
使用它
IPerson p = new PersonProxy(new Person());
p.Name = "test";
p.HelloWorld("stef");
-
.NETStandard 2.0
- 无依赖项。
NuGet软件包
此软件包未被任何NuGet软件包使用。
GitHub存储库
此软件包未被任何流行的GitHub存储库使用。
版本 | 下载 | 最后更新 |
---|---|---|
0.1.0 | 173 | 4/28/2024 |
0.0.38 | 106 | 4/23/2024 |
0.0.37 | 295 | 12/6/2023 |
0.0.36 | 295 | 10/10/2023 |
0.0.35 | 336 | 3/2/2023 |
0.0.34 | 249 | 2/25/2023 |
0.0.31 | 249 | 2/21/2023 |
0.0.30 | 414 | 1/23/2023 |
0.0.29 | 254 | 1/9/2023 |
0.0.28 | 301 | 1/8/2023 |
0.0.27 | 327 | 12/17/2022 |
0.0.26 | 285 | 12/14/2022 |
0.0.25 | 321 | 12/13/2022 |
0.0.24 | 2,921 | 9/5/2022 |
0.0.23 | 392 | 9/4/2022 |
0.0.22 | 503 | 5/9/2022 |
0.0.21 | 431 | 5/8/2022 |
0.0.20 | 390 | 5/8/2022 |
0.0.19 | 437 | 5/8/2022 |
0.0.18 | 425 | 5/8/2022 |
0.0.17 | 444 | 5/7/2022 |
0.0.16 | 443 | 5/6/2022 |
0.0.15 | 430 | 2/6/2022 |
0.0.14 | 460 | 2/4/2022 |
0.0.13 | 421 | 2/2/2022 |
0.0.12 | 461 | 2/1/2022 |
0.0.11 | 368 | 8/10/2021 |
0.0.10 | 394 | 8/6/2021 |
0.0.9 | 324 | 8/5/2021 |
0.0.8 | 341 | 8/3/2021 |
0.0.6 | 391 | 8/1/2021 |
0.0.5 | 404 | 7/31/2021 |
0.0.4 | 346 | 7/28/2021 |
0.0.3 | 389 | 7/25/2021 |
0.0.2 | 336 | 7/25/2021 |
0.0.1 | 367 | 7/25/2021 |
# 0.1.0 (28 April 2024)
- #68 使用完全限定名称以减少命名空间冲突。 [错误]
- #70 添加对具有相同名称但不同命名空间的接口的测试 [测试]
- #69 多个具有相同名称但不同命名空间的接口中输出文件名冲突 [错误]
完整发布说明见于此处:https://github.com/StefH/ProxyInterfaceSourceGenerator/blob/main/ReleaseNotes.md