あなたの型は、実際にその型であるか、その型を継承している場合にのみ、他の型に割り当てることができます。
IsAssignableFrom
メソッドは以下を返します。
"c と現在の Type が同じ型を表している場合、または現在の Type が c の継承階層にある場合、または現在の Type が c が実装するインターフェイスである場合、または c がジェネリック型パラメーターであり、現在の Type である場合は true c の制約の 1 つを表すか、c が値の型を表し、現在の Type が Nullable<c> (Visual Basic では Nullable(Of c)) を表している場合。"
あなたの場合、最初の 2 つの条件のみが適用されます。
あるタイプが別のタイプと同じ名前と名前空間を持っていても、それらが同じタイプになることはなく、タイプ間に何らかの関係がまったく作成されません。
(また、クラスのインスタンスをクラスの別のインスタンスに割り当てることはできません。参照型の場合、インスタンスをインスタンスではなく参照変数に割り当てます。インスタンスを変数に割り当てるとき、それはその型です。変数が現在参照しているインスタンスの型ではなく、代入を実行できるかどうかを決定する変数です。)