I am working on a design of an application. The Core should be written in C# but i also want to use some already finished CPython modules (un-managed).
So I am interested in the interoperability (Call CPython method from C# and Call C# from CPython). And if there are problems, because C# runs within the .NET runtime (managed) and CPython directly un-managed.
I already investigated this issue with Google and came out to these solutions:

Use IronPython via DLR + "CPython extension" + maybe "IronClad" and call from IronPython the CPython modules and vice versa -> are these modules executed managed or unmanaged ? Are There any problems if i want to use C# classes and methods from CPython ?
Use "Python for .NET" -> the same question as above.

What do you think, which way would be better ? or do you have another solution ? 
And the last but maybe most important question, did I understand the above mentioned points right, or do I mess up ?
Many thanks in advance !!
Expose your Python code via COM and call that from C#. Used this avenue (both ways) many times.
C# .NET interoperabillity with managed Python (CPython) -> any problems?