"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como determinar o tipo de objeto a partir de sua representação de string em C#?

Como determinar o tipo de objeto a partir de sua representação de string em C#?

Postado em 2025-02-08
Navegar:423

c# determina o tipo de objeto com base na representação da string

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.

use 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");
]

use 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");

espaço de nome e qualificações de montagem

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.

cena de amostra

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);

How to Determine Object Type from its String Representation in C#?

Tutorial mais recente Mais>

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