Dart Mirror Kullanımı

-Kullanılacak dart sayfa başına mirror kütüphanesi import edilir.
import ‘dart:mirrors’;

—Doğrudan kullanılabilen Fonksiyonlar –>>

MirrorSystem currentMirrorSystem (): Halihazırdaki isolata bağlı bir MirrorSystem döndürür. MirrorSystem bir izolatın kütüphanelerinin yansımasını döndürür.
InstanceMirror reflect ( Object reflectee ): Bir objenin yansımasını InstanceMirror yada ClosureMirror türünden döndürür.
ClassMirror reflectClass ( Type key ): Bir sınıfın bildiriminin bir yansımasını ClassMirror türünden verir. Type bir türün çalışma zamanı gösterimidir.
TypeMirror reflectType ( Type key, [ List typeArguments ]); key ile temsil edilen türü(Type) yansıtır. Type bir class bildiriminin ismi ise ClassMirror türünden döndürür.

-ClassMirror: Bir sınıfın yansımasını döndürür.
-ClosureMirror :Bir ClosureMirror, bir kapatmayı yansıtır.
-CombinatorMirror: yaml daki bağımlılıkları Gösteri / gizleme aynası.
-Comment: Yorumları meta veri ek açıklamaları olarak kodlamak için kullanılan sınıf.
-DeclarationMirror: Bildirilen bazı varlıkları yansıtır. (implementers LibraryMirror MethodMirror TypeMirror VariableMirror)
-FunctionTypeMirror: Dart dilinde bir işlevin türünü temsil eder.
-InstanceMirror: Nesnesinin bir örneğini yansıtır.
-IsolateMirror: Bir izolatı yansıtır.
-LibraryDependencyMirror: Bir import or export ifadesini yansıtır.
-LibraryMirror: Dart kütüphanesini yansıtır ve kütüphanenin değişkenlerine, işlevlerine ve sınıflarına erişim sağlar.
-MethodMirror: Bir fonksiyon, method, constructor, getter, or setter. yansıtır.
-Mirror: Bir Ayna, bir Dart dili varlığını yansıtır.
-MirrorSystem: Bir dizi ilişkili kütüphaneyi yansıtmak için kullanılan ana arayüzdür.
-ObjectMirror: InstanceMirror, ClassMirror ve LibraryMirror un paylaşılan işlevlerini temsil eden ortak bir süper arayüzüdür.
-ParameterMirror: Bir ParameterMirror, Dart resmi parametre bildirimini yansıtır.
-SourceLocation: Dart kaynak kodundaki bir varlığın kapsamını açıklar.
-TypedefMirror: Dart dil programındaki bir typedef öğesini temsil eder.
-TypeMirror: Dart dili sınıfını, typedef, function type veya type değişkenini yansıtır.
-TypeVariableMirror: Genel/Generic bir türün bir tür parametresini temsil eder.
-VariableMirror: Dart dili değişken bildirimini yansıtır.

Kim Kimdir—>>>
hepsi abstract class

SourceLocation
class MirrorSystem
class Comment

TypeMirror implements DeclarationMirror
TypeVariableMirror extends TypeMirror
TypedefMirror implements TypeMirror
ClassMirror implements TypeMirror, ObjectMirror
FunctionTypeMirror implements ClassMirror
Mirror
DeclarationMirror implements Mirror
MethodMirror implements DeclarationMirror

VariableMirror implements DeclarationMirror
ParameterMirror implements VariableMirror

LibraryMirror implements DeclarationMirror, ObjectMirror

CombinatorMirror implements Mirror
LibraryDependencyMirror implements Mirror
IsolateMirror implements Mirror
ObjectMirror implements Mirror
InstanceMirror implements ObjectMirror
ClosureMirror implements InstanceMirror

—<<< —>>> İlişki 2

DeclarationMirror,Mirror,TypeMirror TypeVariableMirror
DeclarationMirror,Mirror,TypeMirror TypedefMirror
DeclarationMirror,Mirror,TypeMirror, ObjectMirror ClassMirror

TypeMirror,ObjectMirror,DeclarationMirror,Mirror,ClassMirror FunctionTypeMirror

Mirror,DeclarationMirror TypeMirror
Mirror,DeclarationMirror MethodMirror
Mirror,DeclarationMirror VariableMirror

DeclarationMirror,Mirror,VariableMirror ParameterMirror
Mirror,DeclarationMirror, ObjectMirror LibraryMirror

Mirror DeclarationMirror
Mirror CombinatorMirror
Mirror LibraryDependencyMirror
Mirror IsolateMirror
Mirror ObjectMirror
ObjectMirror,Mirror InstanceMirror
ObjectMirror,Mirror,InstanceMirror ClosureMirror

—<<<

*
* @MirrorsUsed(symbols: ‘foo’)
* import ‘dart:mirrors’;
*
* class Foo {
* noSuchMethod(Invocation invocation) {
* print(MirrorSystem.getName(invocation.memberName));
* }
* }
*
* main() {
* new Foo().foo(); // Prints “foo”.
* new Foo().bar(); // Might print an arbitrary (mangled) name, “bar”.
* }

Açıklamalar—
-currentMirrorSystem(): Halihazırdaki isolata bağlı bir MirrorSystem döndürür. MirrorSystem bir izolatın kütüphanelerinin yansımasını döndürür.

MirrorSystem currentMirrorSystem ()

Kullanımı:
MirrorSystem gecerliKutuphane= currentMirrorSystem();

-reflect(Object reflectee);: Bir objenin yansımasını InstanceMirror türünden döndürür. reflectee fonksiyon yada class oluşturulmuş bir nesne ise ClosureMirror türünden bir yansıma döndürür.InstanceMirror bir objeni yansıtır, ClosureMirror ise bir kapatma yansıtır.

InstanceMirror reflect ( Object reflectee )

Kullanımı:
InstanceMirror objeminYansisi= reflect(ClassA());

-ClassMirror reflectClass ( Type key ): Bir sınıfın bildiriminin bir yansımasını ClassMirror türünden verir. Type bir türün çalışma zamanı gösterimidir.Örneğin bir
Class SinifA{}
nin tipi A dır.

Kullanım:
ClassMirror sinifAninaynasi=reflectClass ( A );

-TypeMirror reflectType ( Type key, [ List typeArguments ]);: key ile temsil edilen türü(Type) yansıtır.Bir TypeMirror, bir sınıfı, typedef, function type veya type değişkenini yansıtır. Type bir class bildiriminin ismi ise ClassMirror türünden döndürür.

—<<< —Sınıflar —>>>

-ClassMirror: Bir sınıfın yansımasını döndürür.

–declarations → Map<Symbol, DeclarationMirror> :
Sınıf bildiriminde fiilen verilen beyannamelerin değiştirilemez bir haritasını döndürür.

Kullanımı:

class ornekSinif{
String adi;

ornekSinif(this.adi);
void adiYaz(){
print(adi);
}
}

ClassMirror d = reflectClass (ornekSinif);

print(d.declarations);

Çıktısı
{
Symbol(“adi”): VariableMirror on ‘adi’,
Symbol(“adiYaz”): MethodMirror on ‘adiYaz’,
Symbol(“ornekSinif”): MethodMirror on ‘ornekSinif’
}

-ClosureMirror :Bir ClosureMirror, bir kapatmayı yansıtır.

—————-Talebler Çözümler—————

Talep: Kütüphanelerin bir yansımasına ulaşmak istiyorum.
Çözüm: Kütüphaneler bir isolatın altında bulunur. Kütüphanleri MirrorSystem sınıfı yansıtır.
Halihazırdaki isolata bağlı bir MirrorSystem döndüren currentMirrorSystem () metodunu doğrudan kullanarak ulaşabilirsin.
MirrorSystem gecerliKutuphane= currentMirrorSystem();
Talep: Bir sınıfımın yada fınksiyonun nesnesinin örneğine ihtiyacım var?
Çözüm: Bir sınıf kurulmuş ve nesne haline gelmiş halinin yansımasına reflect(Object reflectee); ile ulaşılır.
InstanceMirror objeminYansisi= reflect(ClassA());

KAPAT
%d blogcu bunu beğendi: