您好我已经提到this article代码运行良好,我可以返回值,如文章所示。这是一个dll程序集,我通过javascript调用。
但是,我想将参数传递给接口并将它们拉入类中。
我在文章中修改了代码,尝试了以下代码: -
public interface ASignatures
{
void showMsg(string val);
}
[ClassInterface(ClassInterfaceType.AutoDual)]
public class AClass :ASignatures
{
public showMsg(string val)
{
MessageBox.Show(val);
}
上面的代码没有执行,我看不到错误,因为我通过浏览器中的javascript调用它。如果可能的话,请你告诉我,如果是的话,那我做错了吗?
我是否必须使用GET或SET之类的东西?只是猜测......
更新1 如果我放了消息框,那么只有当我没有参数化函数时才会显示它们。例如:我将messagebox.show放在文章中提供的代码中然后它会显示出来。示例:以下工作并显示消息框: -
using System;
using System.Runtime.InteropServices;
namespace ANamespace
{
public interface ASignatures
{
string FName();
string SName();
int Age { get;}
}
[ClassInterface(ClassInterfaceType.AutoDual)]
public class AClass :ASignatures
{
public string FName()
{
MessageBox.Show("TEST THIS WORKS");
return "Imran";
}
public string SName()
{
return "Nathani";
}
public int Age
{
get { return 24; }
}
}
}
但是,现在,我想使用以下命令将参数传递给此DLL: -
<script language="javascript">
var x = new ActiveXObject("ANamespace.AClass");
x.CallApp(PassSomeValueForExampleQueryString); //instead of x.CallApp()
</script>
有效,我必须做一个CONTROL + F5!
答案 0 :(得分:1)
解决方案非常完美!它工作正常,我只需要做一个CONTROL + F5浏览器刷新!