gpt4 book ai didi

c# - 不会为 .NET 方法生成垫片

转载 作者:可可西里 更新时间:2023-11-01 07:57:27 26 4
gpt4 key购买 nike

当我开始使用 Microsoft Fakes 时,我很高兴开始使用一些 .NET 方法。我被引导相信我将能够填充任何 .NET 方法,静态与否:http://msdn.microsoft.com/en-us/library/hh549176.aspx .

但是,我一直在尝试填充 TcpClient 中的一些方法,并且只创建了 stub ,这对我没有好处,因为我希望能够更改一些方法以返回我自己的数据,而不是依赖于在实时 TcpClient 上给我数据。

如果除 Microsoft Fakes 之外还有其他方法,我愿意接受有关如何执行此操作的任何建议。

编辑:添加代码来演示问题

[TestMethod]
public void CommunicationTest()
{
var stubbedTcpClient = new System.Net.Sockets.Fakes.StubTcpClient
{

};

//No such ShimTcpClient exists
var shimmedTcpClient = new System.Net.Sockets.Fakes.ShimTcpClient
{

};
}

最佳答案

this blog post 的帮助下得到它的工作和 here .

解决方案是在 System.fakes 文件中显式添加我想要填充的类。这是我现在的样子:

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="System" Version="4.0.0.0"/>
<ShimGeneration>
<Clear/>
<Add FullName="System.Net.Sockets.TcpClient"/>
<Remove Obsolete="1"/>
</ShimGeneration>
</Fakes>

Remove Obsolete="1" 是为了阻止 Shim 生成代码在尝试填充 [Obsolete] 代码时抛出错误。

关于c# - 不会为 .NET 方法生成垫片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16154182/

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