上一篇研究了如何做到CS和JS互相透明访问的设想,经过一些实践,这里做出了一个小DEMO。
这里有第一个演示类:
public class TestCSClass
{
public TestCSClass()
{
}
//如果可被重写则重载
public virtual object Method1()
{
Console.WriteLine("CS CALL!!");
return "Hello CS";
}
}
简单的C#代码,然后有个可重载的方法 Metod1
[SharpKit.JavaScript.JsType(SharpKit.JavaScript.JsMode.Clr, PreCode = @"
try{
if (typeof (global.JsTypes) != 'undefined') {
JsTypes = global.JsTypes;
}
}
catch (e) {
}
"
)]
public class TestJSClass : TestCSClass
{
public string Arg1 { get; set; }
public void FunA(string arg)
{
}
public TestJSClass()
{
}
}
这是将要生成JS的类,继承与TestCSClass,有个独有的属性,并且多了一个字段,并且重载了一个方法。
然后是代理JS类,用于绑定C#对象并且拥有一些继承类的基础信息
//C# 代理类
namespace Proxy
{
//JS代理类
[SharpKit.JavaScript.JsType(TargetType = typeof (CsLibForJS.TestCSClass))]
public class TestCSClass
{
public string __BaseTypeName = "CsLibForJS.TestCSClass";
private object _ExtObject