C# 将MemoryStream与需要文件流的函数一起使用

C# 将MemoryStream与需要文件流的函数一起使用,c#,.net,filestream,memorystream,C#,.net,Filestream,Memorystream,这里有一些函数,例如定义为 private int WriteLogikParameterTyp(FileStream filestream) 这是我无法改变的。我想让它们写入MemoryStream对象。这可能吗 没有 FileStream是一个具体的实现 但它是一个私有方法,所以应该很容易更改,因为您可以找到所有内部使用?建议将方法签名替换为流而不是文件流 嗯。。。除非您创建一个临时文件,否则先将其写入,然后将其读入内存。因为您无法更改函数签名以接受更通用的类型。。我建议写一个临时文件,然

这里有一些函数,例如定义为

private int WriteLogikParameterTyp(FileStream filestream)
这是我无法改变的。我想让它们写入MemoryStream对象。这可能吗

没有

FileStream是一个具体的实现

但它是一个私有方法,所以应该很容易更改,因为您可以找到所有内部使用?建议将方法签名替换为流而不是文件流


嗯。。。除非您创建一个临时文件,否则先将其写入,然后将其读入内存。

因为您无法更改函数签名以接受更通用的类型。。我建议写一个临时文件,然后将内容读入MemoryStream实例。


如果您没有访问它们的权限,您可以使用reflector了解它们是如何工作的,并为MemoryStream实现您自己的版本。这是否合法是另一个问题…

否。FileStream不公开可以调用的构造函数,因此您不能继承它来模拟它。

建议

像这样重命名该方法

private int WriteLogikParameterTyp_Ex(Stream stream);
然后像这样重新创建原始签名

private int WriteLogikParameterTyp(FileStream filestream)
{
     return WriteLogikParameterTyp_Ex(filestream);
}

这只是一个例子。一个是私人的,另一个是公共的。其中有很多。道歉;我先告诉你临时文件解决方案。我们必须同时点击‘提交’:)“这是否合法”-我相信没有人会逮捕他:)为什么不简单地更改方法签名?它不会破坏现有的使用代码,因为FileStream是从流派生的…我假设,因为他“不能更改方法”,他也不能使其委托:)。愿最快的手指获胜!:)