nullに対するアサーションエラーの取得に関して、OPと同じ問題が発生しました。Glibのドキュメント(C)を見ると、クラス名の文字列表現を実際に使用する前に、最初にクラス名を実際に指定してクラスを登録する必要があると記載されています。
つまり、Glib.Type.from_name( "ClassName")を使用してクラスのコピーをインスタンス化する前に、まずクラスを使用する必要があります。
クラスインスタンスをインスタンス化するか、クラスの型情報を取得することで、最初にクラスを使用できます。
var type = typeof (MyClass);
var type_from_string = Type.from_name ("MyClass");
さらに、Object.newを使用してクラスを作成する場合、次の2つの点に注意する必要があります。
1)特定のクラスまたは基本クラスを取得するには、戻り値をキャストする必要があります。
var instance_of_my_class = Object.new (type) as MyClass;
2)クラスのコンストラクターは呼び出されなくなります(理由はわかりません)。クラス内でGObjectスタイルコンストラクターを使用する必要があります。
construct {
pizza = 5;
}