2013-06-19 5 views

ответ

5

Код Dart:

ClassMirror c = reflectClass(MyClass); 
InstanceMirror im = c.newInstance(const Symbol(''), ['MyAttributeValue']); 
var o = im.reflectee; 

Узнайте больше из этого документ: http://www.dartlang.org/articles/reflection-with-mirrors/

(от Гилада Браха)

+1

Свойства «первых» и «классов» уже не находятся на LibraryMirror (я использую 30188). Как бы вы это сделали с Dart v1? – ringstaff

+1

Спасибо, я обновил ответ. –

0

Использование built_mirrors вас может сделать это следующим образом:

library my_lib; 

import 'package:built_mirrors/built_mirrors.dart'; 

part 'my_lib.g.dart'; 

@reflectable 
class MyClass { 

    String myAttribute; 

    MyClass(this.myAttribute); 
} 

main() { 
    _initMirrors(); 

    ClassMirror cm = reflectType(MyClass); 

    var o = cm.constructors[''](['MyAttributeValue']); 

    print("o.myAttribute: ${o.myattribute}"); 
} 
Смежные вопросы