2011-11-04 109 views
1

我想添加一个包含大量子对象的巨大对象到ScriptControlClass。 当访问这些子类我得到一个错误的对象为空或没有对象MSScriptControl.ScriptControlClass - 访问主对象的子对象

MSScriptControl.ScriptControlClass js = new MSScriptControl.ScriptControlClass(); 
js.AllowUI = false; 
js.Language = "JScript"; 
js.Reset(); 
js.AddObject("MyObject", myObject, false); 

[ComVisible(true)] 
class AAA 
{ 
    public BBB Bbb { get; set; } 
} 

class BBB 
{ 
    public CCC Ccc { get; set; } 
} 

class CCC 
{ 
    public string MyString { get; set; } 
} 

如果我要得到我的物体通过这个JScript中码的最后一个字符串我得到的错误

var x = MyObject.Bbb.Ccc.MyString; 

我该怎么做?

回答

1

我必须添加到每个类的标记有ComVisible特性(真)的属性,而不是只对第一个AAA级

[ComVisible(true)] 
public class AAA 
{ 
    public BBB Bbb { get; set; } 
} 

[ComVisible(true)] 
public class BBB 
{ 
    public CCC Ccc { get; set; } 
} 

[ComVisible(true)] 
public class CCC 
{ 
    public string MyString { get; set; } 
}