public void CustomTypeDescriptor2() {
Context.ObjectClass.SetConstant("C", Context.GetClass(typeof(ArrayList)));
var cls = Engine.Execute(@"
class D < C
attr_accessor :a
self
end
");
var obj = Engine.Operations.CreateInstance(cls);
Assert(obj != null);
var ictd = Engine.Operations.CreateInstance(cls) as ICustomTypeDescriptor;
Assert(ictd != null);
Assert(ictd.GetClassName() == "D");
var props = ictd.GetProperties();
Assert(props.Count == 1);
props[0].SetValue(obj, "abc");
Assert(Engine.Operations.InvokeMember(obj, "a").Equals("abc"));
}
}