Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IronPython如何将对象传递给需要接口的C#方法?_C#_.net_Clr_Ironpython_Fix Protocol - Fatal编程技术网

IronPython如何将对象传递给需要接口的C#方法?

IronPython如何将对象传递给需要接口的C#方法?,c#,.net,clr,ironpython,fix-protocol,C#,.net,Clr,Ironpython,Fix Protocol,我想打电话 公共SocketInitiator(应用程序应用程序、MessageStoreFactory、会话设置、LogFactory LogFactory) 现在,第二个参数是一个接口: namespace QuickFix { public interface MessageStoreFactory { MessageStore Create(SessionID sessionID); } public class MemoryStoreFact

我想打电话
公共SocketInitiator(应用程序应用程序、MessageStoreFactory、会话设置、LogFactory LogFactory)

现在,第二个参数是一个接口:

namespace QuickFix
{
    public interface MessageStoreFactory
    {
        MessageStore Create(SessionID sessionID);
    }  
public class MemoryStoreFactory : MessageStoreFactory {...}
}
我试图向它传递一个接口实例:
msf1=QuickFix.MemoryStoreFactory()
init=QuickFix.Transport.SocketInitiator(osa、msf1、ss、screenlog)
但我得到了一个毫无帮助的错误

Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: expected MessageStoreFactory, got MemoryStoreFactory
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:应为MessageStoreFactory,获得MemoryStoreFactory

是否有某种方法可以向C#/CLR标识I已经传递了一个实现MessageStoreFactory实例的类的Python实例?或者这是另一个不相关的问题?

这个答案认为,通过AddReference加载DLL的具体方式会有所不同。如果您实现了示例中所示的
MemoryStoreFactory
,并且
socketInitiation
的构造函数接受了
MessageSoreFactory
它应该可以正常工作。您使用的是哪种IronPython版本?您确定没有多个同名的类/接口,并且您从错误的命名空间或程序集获取了一些类/接口吗?我想我可能已经两次添加了对dll的引用--最终使它工作了。我希望能有办法确定这一点。IronPython 2.7.5