Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cristóferson Bueno

Reflection em uma Constante (C#)

Recommended Posts

Estou com a seguinte dúvida:

 

Quando faço reflection em uma constante da seguinte maneira tudo funciona normalmente.

 

using System;using System.Reflection;namespace Sistema.SqlServer{	class Reflection	{		public const string SEQUENCIA_SQL = "SELECT * FROM QUALQUERLUGAR;";		public Reflection() { }		public static void Main()		{			System.Reflection.FieldInfo fi =				Type.GetType("Sistema.SqlServer.Reflection").GetField("SEQUENCIA_SQL");			string temp = (string)fi.GetValue(null);			Console.WriteLine("O Valor Da Constante: {0}", temp);		}	}}
No entanto se eu tiver mais de um projeto dentro da minha Solution e tentar fazer algo como o exemplo a seguir:

 

O trecho de código a seguir estaria em um projeto, com o nome de Programa

using System;using System.Reflection;using Sistema.SqlServer;namespace Sistema.Programa{	class Programa	{		public static void Main()		{			System.Reflection.FieldInfo fi =				Type.GetType("Sistema.SqlServer.Repositorio").GetField("SEQUENCIA_SQL");			string temp = (string)fi.GetValue(null);			Console.WriteLine("O Valor Da Constante: {0}", temp);		}	}}

O trecho de código a seguir estaria em um outro projeto, com o nome de SqlServerRepositorio

using System;namespace Sistema.SqlServer{	class Repositorio	{		public const string SEQUENCIA_SQL = "SELECT * FROM QUALQUERLUGAR;";		public Repositorio() { }	}}
Fazendo da segunda maneira eu obtenho a seguinte mensagem de erro:

 

NullReferenceException was unhandled

 

Object reference not set to an instance of an object.

Ele não consegue enxergar a minha classe Repositorio dentro do namespace Sistema.SqlServer na verdade acho que ele não está enxergando nem o namespace, mesmo tendo adicionado a referencia para ele.

 

Alguém faz idéia de porque isto está acontecendo e como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça...

 

Sistema.SqlServer.Repositorio obj = new Sistema.SqlServer.Repositorio();MessageBox.Show(obj.GetType().ToString());

... e veja qual é a descrição completa do tipo. É essa descrição que você precisará utilizar.

 

Abraços,

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.