[Ironpython-users] IronPython, Daily Digest 4/8/2014

CodePlex no_reply at codeplex.com
Wed Apr 9 09:24:21 CEST 2014


Hi ironpython,

Here's your Daily Digest of new issues for project "IronPython".

In today's digest:ISSUES

1. [New comment] Enable Frames by default
2. [New issue] .NET and COM InterOp issues in IronPython

----------------------------------------------

ISSUES

1. [New comment] Enable Frames by default
http://ironpython.codeplex.com/workitem/34263
User jkf35 has commented on the issue:

"<p>Can we possibly add this in 2.7.5?  </p>"-----------------

2. [New issue] .NET and COM InterOp issues in IronPython
http://ironpython.codeplex.com/workitem/35113
User PlexCUser has proposed the issue:

"IronPython COM interop Vs C#/F# 
 
It appears as though one has to call COM Interface’s method explicitly in IronPython, where as methods/properties are automatically detected in C#/F#.
Is there any setting/option in IronPython to make it work similar to C#/F# for COM interop?

Unable to do the following with early binding in IronPython
Marshal.GetActiveObject("Vendor.Application").XXX.YYY, whereas this is possible in both C# and F#.
Intellisense also works fine with C#/F# in VS2013, but not with IronPython.

(Tried all the three different methods described in http://ironpython.net/documentation/dotnet/dotnet.html, Creating COM object, but the issue remains)

C#:
// Add COM typelib reference
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VendorTypeLibNS;
using System.Runtime.InteropServices;

namespace CustomNS
{
class Program
{
    static void Main(string[] args)
    {

// PLEASE NOTE that intellisense works on any of the followng statements without any issues.
        Application app = (Application)Marshal.GetActiveObject("Vendor.Application");
        Console.WriteLine (app.secondLevelComObject.someStringProperty);
    }
}

}

F#
r "C:\Temp\ Interop.Vendor.dll"
open VendorTypeLibNs
open System.Runtime.InteropServices
let app  = Marshal.GetActiveObject("Vendor.Application"):?> VendorTypeLibNs.Application
let strProp = app.secondLevelComObject.someStringProperty

IronPython



import clr
import sys
from System.Runtime.InteropServices import Marshal
clr.AddReference("Interop.Vendor") // after updating sys.path with append
app = Marshal.GetActiveObject("Vendor.Application")
comObj2 = Application. secondLevelComObject.GetValue(app)
SecondLevelComObjectType.SecondLevelComObjectStringProp.GetValue(aDoc)
'Some String’



Unable to do the following in IronPython:
App.secondLevelComObject.someStringProperty

From InterOp DLL
Application is an Interface
secondLevelComObject is also an interface (which a property on application)
secondLevelComObject is a property on secondLevelComObject


Thank you."
----------------------------------------------



----------------------------------------------
You are receiving this email because you subscribed to notifications on CodePlex.

To report a bug, request a feature, or add a comment, visit IronPython Issue Tracker. You can unsubscribe or change your issue notification settings on CodePlex.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20140409/4d2343db/attachment.html>


More information about the Ironpython-users mailing list