Creating IStream object in C#

2020-03-26 03:38发布

I'm writing a project and working with another party DLL.

Function from their DLL wants an IStream object to save result, but I can't understand how to create an IStream object.

Can anyone help me with my problem?

4条回答
闹够了就滚
2楼-- · 2020-03-26 03:57

Implement your own stream class and inherit the IStream interface. IStream is just a stream and can be pretty much what you decide it is as long as it is a stream (e.g. FileStream etc.)

Related: link

查看更多
家丑人穷心不美
3楼-- · 2020-03-26 04:02

Here is a managed implementation from Microsoft now that .Net is more open source:

https://referencesource.microsoft.com/#PresentationFramework/src/Framework/MS/Internal/IO/Packaging/managedIStream.cs

查看更多
Luminary・发光体
4楼-- · 2020-03-26 04:07

IStream I assume is an interface. You cannot create an instance from an interface directly, rather you create an instance of an object that implements that interface (or create your own object that implements IStream).

查看更多
乱世女痞
5楼-- · 2020-03-26 04:15

You don't create IStream object, because obviously it's an interface. You should rather implement this interface and pass your object. Or simply use an object that already implements it, if such object exists.

Already given answer for a similar question gives a nice example how to use IStream interface in C#.

Does a wrapper class for a COM interop IStream already exist?

Correction: This, however, works only if you need to use already an existing IStream inside your app, not when you need to create and pass an IStream elsewhere. For that task, see this for refence how to do that:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa380034(v=vs.85).aspx

And here is an example from Microsoft (used for XmlLite, not sure if it works for you)

http://msdn.microsoft.com/en-us/library/windows/desktop/ms752876(v=vs.85).aspx

Or maybe this example, already posted by Marcus: http://hl7connect.blogspot.sk/2010/04/c-implementation-of-istream.html

This last link shows how to use any Stream to implement the IStream interface.

查看更多
登录 后发表回答