iOS XCode应用程序可以引用MonoTouch程序集吗?

iOS XCode应用程序可以引用MonoTouch程序集吗?

问题描述:

我正在考虑如何最好地在团队之间为新项目划分工作。我们有一个Windows C#应用服务团队和一个较小的iOS Objective-C团队。也可能迟早会需要Android应用程序。iOS XCode应用程序可以引用MonoTouch程序集吗?

设备上调用我们的服务并处理与本地数据存储同步的域层/ api程序集是用C#编写并使用MonoTouch编译的逻辑组件。然后Objective-C团队引用这个组件。那可能吗?我在MonoTouch引用C程序集的时候阅读了很多,但是它能以其他方式工作吗?

如果有可能的话,尝试这种方法的任何经验都会很棒!

感谢 亚伦

虽然技术上可行,就没有今天这样的没有简单的方法。

您现在可以做的最好的事情是从C#启动应用程序,然后如果需要,将控制权转移到您的Objective-C代码。在C#的推出,你可以注册方法,使用P叫回用Objective-C代码/ Invoke的调用是这样的:

delegate void some_callback_t (int parameter1, int parameter2); 

[DllImport ("__Internal")] 
void SetCallback (some_callback_t callback); 

static void mycallback (int parameter1, int parameter2) 
{ 
    // Here goes your C# logic to be called by C 
} 

然后调用:

SetCallback (mycallback); 

注意,myCallBack函数必须是静态方法(静态编译的限制)。然后你的Objective-C代码可以通过执行类似的方式来使用服务:

typedef (*callback_t) (int p1, int p2); 
callback_t callback; 
void SetCallback (callback_t cb) 
{ 
    callback = cb; 
} 

void InvokeCSharp() 
{ 
    callback (1, 2); 
} 
+0

嗨米格尔,感谢您的及时响应。是否有可能发回复杂的DTO?是否需要特殊编组? - 这看起来不像我可以说服我们的iOS大师使用的东西。谢谢 – Aaron 2011-03-10 23:56:01

+0

我不知道DTO的含义。 – 2011-03-11 06:30:04

+0

DTO =数据传输对象。一般而言,它只是一个简单的对象,只具有属性,并且没有行为,用于跨不同层发送数据。 – 2011-03-11 19:25:10