Re: [Ikvm-developers] Class.forName and csharp classes
Brought to you by:
jfrijters
|
From: Martin G. <M.G...@bi...> - 2017-02-17 15:07:47
|
Hi Jeroen,
thanks for the answer - I tried both:
---------------------------
using System.Diagnostics;
using System;
[assembly: IKVM.Attributes.NoPackagePrefixAttribute]
namespace foo
{
class Foo
{
public Foo()
{
}
}
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine("starting up...");
Launcher.main("foo.Foo");
}
}
}
---------------------------
package foo;
public class Launcher {
public static void main(final String name) {
try {
System.err.println("Starting up and trying to load " + name);
final Class<?> forName = Class.forName("cli." + name);
System.out.println("Finished loading " + forName);
} catch (final ClassNotFoundException e) {
e.printStackTrace();
}
}
}
---------------------------
Neither works - neither the additional cli. namespace prefix nor adding the attribute (Not sure if I did that one correctly)
Compiling with the commands:
ikvmc -classloader:ikvm.runtime.ClassPathAssemblyClassLoader -assemblyattributes:$(BIN)/AssemblyInfo.class -target:library $<
mcs -target:exe -main:foo.MainClass -r:System.dll,IKVM.Runtime.dll,IKVM.OpenJDK.Core.dll,$(NAME).dll -out:proof-of-concept.exe GuiceRepro.cs AssemblyInfo.cs
Regards
Martin
________________________________________
Von: Jeroen Frijters [je...@su...]
Gesendet: Freitag, 17. Februar 2017 14:50
An: Martin Gerhardy; ikv...@li...
Betreff: RE: Class.forName and csharp classes
Hi Martin,
Did you take into account that the C# classes get a "cli." prefix in Java (by default)?
You can apply the IKVM.Attributes.NoPackagePrefixAttribute to the class or assembly to disable this.
Regards,
Jeroen
> -----Original Message-----
> From: Martin Gerhardy [mailto:M.G...@bi...]
> Sent: Wednesday, February 15, 2017 11:34
> To: ikv...@li...
> Subject: [Ikvm-developers] Class.forName and csharp classes
>
> Hi,
>
> we are converting a deserialization jar via ikvm into a dll and bind a
> csharp class via guice to some of the serialized classes. The java code
> contains a call for Class.forName for that class. As our injected class
> is a csharp class, this doesn't work. Is there any way to work around
> this? (In the sense the Class.forName also finds csharp classes?)
>
> Regards
> Martin
|