Man, that worked! I've been really bummed about not figuring this out for the 
past day or so. Thanks a lot for the tip!!!!!!

Derek


-------------------------Derek Blogging at: 

----------------------------------------
> From: [EMAIL PROTECTED]
> To: [email protected]
> Date: Tue, 23 Sep 2008 12:26:55 -0700
> Subject: Re: [IronPython] ArgumentTypeException when accessing C# objects,    
> need help!
> 
> This is probably due to a loader context issue.  Effectively what's happening 
> is your clr.AddReference() from your Python script is probably ultimately 
> doing a LoadFile (putting the assembly into a special context) and otherwise 
> your assembly is getting loaded normally - so you end up w/ two copies of the 
> same assembly loaded but w/ different contexts.
> 
> This is much easier to do from 2.0 where you can just call 
> ScriptRuntime.LoadAssembly and pass it in your assembly object (e.g. 
> typeof(Entry).Assembly).  It looks like you're using 1.0 though...  What 
> might be easiest these is to right a small piece of Python code which does:
> 
> import clr
> clr.AddReference(myAssembly)
> 
> where myAssembly is a global that points to typeof(Entry).Assembly.
> 
> Alternately if your assembly has a strong name (maybe it needs to be in the 
> GAC as well?) you could do clr.AddReference() with the fully qualified strong 
> name.
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Derek Ealy
> Sent: Tuesday, September 23, 2008 12:07 PM
> To: [email protected]
> Subject: [IronPython] ArgumentTypeException when accessing C# objects, need 
> help!
> 
> 
> Hi
> 
> I'm pretty new to this whole IronPython thing and have a problem that's been 
> hanging me up for a couple of days now. I have a fairly large C# application, 
> and we've recently added IronPython to the mix so we can support dynamic 
> scripting at runtime.
> 
> Users are able to create Python scripts which can manipulate the C# objects 
> in our main application. The problem that I'm having is when I try to pass a 
> C# object to a method on another C# object from within the Python script. It 
> is throwing an ArgumentTypeException: expected Entry got Entry. This is 
> especially confusing, because it sure looks like the exception is saying that 
> an Entry object was expected, and that indeed an Entry object is what it got.
> 
> Here is an example of what I'm trying to do:
> 
> // C# code
> 
> PythonEngine py = new PythonEngine();
> 
> string init = "import clr\n" +
>          "clr.AddReference(\"TritonConfiguration.dll\")\n" +
>          "import TritonConfiguration.ValidationReport as ValidationReport\n" +
>          "import TritonConfiguration.Entry as Entry";
> 
> py.Execute(init);
> 
> Entry entry = new Entry();
> entry.PrimaryKey.SetValue("Fred");
> Rule rule = new Rule();
> rule.Name = "testRule";
> py.Globals["entry"] = entry;
> py.Globals["rule"] = rule;
> 
> string pyLogic = "if entry.PrimaryKey.Value != 'Barney':\n" +
>         "   failure = ValidationReport.RuleFailure('PK is not Barney')\n" +
>         "   failure.ruleName = rule.Name\n" +
>         "   failure.failedEntry = entry\n";
> 
> py.Execute(pyLogic);
> 
> 
> 
> It is the last line in the pyLogic string that causes the 
> ArgumentTypeException. The failedEntry property of the RuleFailure object is 
> of type Entry. I'm not sure if there is a problem with the way I'm importing 
> things from TritonConfiguration.dll, or the assigning and usage of global 
> variables in Python, or if there's some other thing wrong that I'm completely 
> unaware of.
> 
> Any suggestions would be greatly appreciated.
> 
> 
> -------------------------
> Derek
> 
> Blogging at: http://derekealy.com/WordPress
> 
> _________________________________________________________________
> See how Windows Mobile brings your life together-at home, work, or on the go.
> http://clk.atdmt.com/MRT/go/msnnkwxp1020093182mrt/direct/01/
> _______________________________________________
> Users mailing list
> [email protected]
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> Users mailing list
> [email protected]
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_________________________________________________________________
See how Windows Mobile brings your life together—at home, work, or on the go.
http://clk.atdmt.com/MRT/go/msnnkwxp1020093182mrt/direct/01/
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to