Em C#, uma sequência que contém o nome do tipo pode ser convertida no objeto de tipo correspondente. No entanto, o método usado para essa conversão depende se o tipo é definido na mesma montagem que o código de chamada ou em uma montagem diferente.
type.gettype (string)
Se o tipo for definido na mesma montagem, você poderá usar o método type.gettype (string)
e fornecer um nome de tipo totalmente qualificado como uma string. Por exemplo, para obter o TIPE
do int
Tipo de dados, você pode usar:
Type.GetType("System.Int32");
]
Assembly.getType (String)
Se o tipo for definido em uma montagem diferente, você também precisará fornecer o nome da montagem. Ele pode ser implementado usando o método Assembly.getType (String)
. Primeiro, obtenha uma referência à Assembléia e use essa referência para obter TIPE
:
Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType("Namespace.MyClass");
Verifique se o espaço para nome do tipo está incluído na string fornecida para type.gettype ()
ou Assembly.getType ()
. Além disso, para assembléias fortemente nomeadas, pode ser necessário incluir identidade de montagem completa, incluindo versão, cultura e tags de chave pública.
Considere o seguinte cenário em que uma string contém um nome totalmente qualificado do tipo:
string typeName = "Namespace.MyClass, MyAssembly";
]
Dependendo se myAssembly
é referenciado pela Assembléia chamada, você pode usar type.gettype ()
ou Assembly.gettype ()
:
// 如果 MyAssembly 被引用
Type type1 = Type.GetType(typeName);
// 如果 MyAssembly 未被引用
Assembly asm = typeof(SomeKnownType).Assembly;
Type type2 = asm.GetType(typeName);
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3