This project has moved and is read-only. For the latest updates, please go here.

Support for MonoTouch, Mono for Android and MonoMac?

Apr 23, 2012 at 8:12 PM

Hi all,

  Just wondering if there are any plans to support the Mono toolset as stated in the title?



Apr 23, 2012 at 10:46 PM

Next release will have a portable project that should run on those platforms.

Apr 24, 2012 at 8:32 AM

Thanks for the quick reply James. What is the time-frame for the next release, roughly?

Apr 24, 2012 at 11:08 AM


Apr 24, 2012 at 3:52 PM

When should we expect an update to the NuGet package?

Apr 26, 2012 at 5:51 AM

A couple of days ago.

Apr 26, 2012 at 12:04 PM

Hi James,

  I forked your repo on github and was hoping to provide you with MonoTouch and Mono for Android projects, but just using the PORTABLE #IFDEF does not seem enough. For example under Mono, IsEnum is a property and does not allow access to the IsEnum() method. What was the reason for using the method over the property?

Just thought I'd give you  heads up.

Once I have things compiling, I'll send through a pull request.

Apr 26, 2012 at 12:34 PM

Hi James,

  A pull request for MonoTouch/MonoDroid is now available from



Apr 26, 2012 at 1:09 PM

It is using the Type.IsEnum property.

I don't have either of those platforms. If a portable class library doesn't work on MonoTouch/MonoDroid then tell the Mono guys to fix it.

Apr 26, 2012 at 2:12 PM

Hi James,

  If you look at the diff here ( as one example )...

The original code looks like this...

if (contract.UnderlyingType.IsInterface() || contract.UnderlyingType.IsAbstract())

How is IsInterface() a property rather than an method call?

Does the Microsoft compiler treats both like properties? How does it know when its a method call instead?

That is why in my pull request the above became...


if (contract.UnderlyingType.IsInterface || contract.UnderlyingType.IsAbstract)

This, to me, is clearer that these are properties rather than methods.

I'm just curious how the 2 compilers treat methods and properties differently.

Note, I don't have access to a Windows box right now, hence why I can't confirm this property/method conundrum.


Apr 27, 2012 at 12:27 AM
Edited Apr 27, 2012 at 12:28 AM

Extension methods. IsEnum is used inside IsEnum()

Apr 27, 2012 at 8:21 PM

Damn that makes sense now. I was missing TypeExtension.cs from the project :S.