The docn says that any .NET class to be used from COM must have a public
no-parameters constructor. I don't see one in any of the classes
you defined.
Nesting classes the way you have is not, I don't think, going to be
compatible with being called from COM. The class you seem to be
asking COM to create (the outer class) is not one that has a PrintHi
method.
Also, some samples suggest that you might want to use more
attributes:
[ClassInterface(ClassInterfaceType.AutoDispatch)]
[ProgID("Try2005.TestingCSBC")]
on the class you want to be callable. I don't think those are
required, but they'll increase the explicit info that you're providing to
the code that builds the COM-callable-wrapper (the mechanism that exposes
the .NET code to COM) for your class.
However, for each of those issues, I'm surprised that you're getting the
message "cannot find the file specified." You could try
using FileMon (from sysinternals.com) to figure out what file it's
looking for that's not being found; you could try calling this from VB or
VBA and see if you've got the same problem; you could use OLEView.exe (or
raw registry examination) to look at what the COM defn of your class
is.
I'm sure that you can do simple calls to simple .NET objects from Python
2.x without using Python.NET -- but if you can't use the COM object from
VB (when declaring the variable as type Object), you won't be able to use
it via Python's win32com.client.Dispatch.
You might want to look at (perhaps wrapped)
http://aspn.activestate.com/ASPN/docs/ActivePython/2.3/pywin32/html/com/win32com/HTML/QuickStartClientCom.html
for info about using makepy.py to generate a Python "wrapper
class" so that you don't have to work with a "raw" COM
IDispatch. (If you change 2.3 to 2.4 you get some more info, but
apparently nothing about functionality only in 2.3.)
Good luck.
At 02:37 AM 1/3/2005, Amod Kulkarni wrote
Hi,
I know PythonNet has been specially designed to handle .NET/CLR compatibility but because of some other restrictions I want to use Python 2.3 to access a C# function. [snip]