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                
#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                

使用方法

给定:一个外部现有类,它不实现接口

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");
此包中没有支持的框架资产。

了解有关目标框架.NET Standard的更多信息。

  • .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