gpt4 book ai didi

c# - .NET 工具 : Extract Interface and Implement Wrapper Class

转载 作者:太空狗 更新时间:2023-10-29 21:06:52 25 4
gpt4 key购买 nike

有没有工具可以为已有的类生成extract和接口(interface)?

我知道 Visual Studio 将为现有类提取接口(interface)。但是,我还想生成一个实现该功能的包装器类。

我相信这对单元测试有很大帮助。

现有类示例:

public class ThirdPartyClass
{
public void Method1(){}
public void Method2(){}
}

这可以由 Visual Studio 生成(提取接口(interface)):

public interface IThirdPartyClass
{
void Method1();
void Method2();
}

我想更进一步:

public class ThirdPartyClassWrapper : IThirdPartyClass
{
private tpc = new ThirdPartyClass();
public void Method1()
{
tpc.Method1();
}
public void Method2()
{
tpc.Method2();
}
}

更新:

这对静态类特别有用。正如 Morten 指出的那样,我可以只使用一个 stub ,但是,如果可能的话,我想打破我的耦合。

最佳答案

为非密封类找到了解决方法。

1 - 从外部类继承

class MyWrapper : ExternalClass

2 - 提取所有公共(public)方法的接口(interface)

class MyWrapper : ExternalClass, IExternalClass

3 - 移除外部类的继承

class MyWrapper : IExternalClass

4 - 您将获得有关未实现接口(interface)成员的类名的提示。 Alt + Enter 在上面让 Resharper 自动执行它们

5 - 使用此代码模板包装属性

    get { return $INNERCOMPONENT$.$NAME$; }
set { $INNERCOMPONENT$.$NAME$ = value; }

6 - 使用此代码模板包装方法

return $INNERCOMPONENT$.$NAME$($SIGNATURE$);

关于c# - .NET 工具 : Extract Interface and Implement Wrapper Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5035188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com