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