在开发用于我们产品的 SDK 时,我们希望为用户(开发人员)提供一个 Visual Studio 插件,主要是为了在他们的开发过程中为他们提供 Intellisense 并确保他们的代码为他们编译。为此,我们剥离了所有 SDK API 的内容,并将它们全部放在一个单独的项目中。
例如:
public IEnumerable<string> AvailableConnections(bool querySystem) {
var connections = ConnectionList();
if(querySystem)
connections = connections.Concat(SystemConnections());
... // Filter connections somehow
return connections;
}
public void WriteToStream(Stream strFrom, Stream strTo) {
byte[] buffer = new byte[32 * 1024]; // 32 KiB
int len;
while ( (len = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, len);
}
}
变成:
public IEnumerable<string> AvailableConnections(bool querySystem) { return null; }
public void WriteToStream(Stream strFrom, Stream strTo) { }
我的问题:是否有工具可以自动执行此操作,无论是针对特定项目还是特定命名空间?理想情况下,它将接收一个项目或命名空间并输出所有公共类/函数,用返回类型的默认值的简单返回替换它们的定义。当您查看一个您没有源代码的类时(例如,您将看到IEnumerable<T> [from metadata]
),Visual Studio 似乎几乎可以做到这一点。