Ir para conteúdo

POWERED BY:

Arquivado

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

Ricardo Fressa

Erro do Compilador: CS0246

Recommended Posts

Olá, peguei um codigo de contato no site codigofonte o projeto está funcionando normalmente, mas quando eu pego o codigo pra colocar no meu projeto da o seguinte erro..

O que me parece é que quando crio o arquivo FillDropDownList.cs que está no diretorio App_Data o arquivo contato.aspx.cs nao consegue encontrar esse namespace EmailSend

Mensagem de Erro do Compilador: CS0246: O nome de namespace ou o tipo 'EmailSend' não pôde ser encontrado. Precisa de uma diretiva using ou de uma referência de assembly?

 

o erro é nessa linha

Linha 15: using EmailSend.Class;

 

fui verificar qual é o motivo desse erro e parece que ele não consegue encontrar o namespace EmailSend que está no arquivo FillDropDownList.cs

 

arquivo FillDropDownList.cs

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace EmailSend.Class
{
	public class FillDropdownList
	{
		#region Criando Variaveis Internas
		private DropDownList _ddl;
		private string _ddlText;
		private string _ddlValue;
		private string _nodeElement;
		private string _urlXml;
		private string _textDefault;
		#endregion

		/// <summary>	
		/// Obter ou alterar o nome do campo que irá preencher o texto dos itens	
		/// </summary>	
		public string DDLText
		{
			get { return _ddlText; }
			set { _ddlText = value; }
		}

		/// <summary>	
		/// Obter ou alterar o nome do campo que irá preencher o valor dos itens	
		/// </summary>	
		public string DDLValue
		{
			get { return _ddlValue; }
			set { _ddlValue = value; }
		}

		/// <summary>	
		/// Obter ou alterar o endereço do ficheiro xml a ser lido	
		/// </summary>	
		public string UrlXml
		{
			get { return _urlXml; }
			set { _urlXml = value; }
		}

		/// <summary>	
		/// Obter ou alterar o nome dos elementos que vão ser lidos	
		/// </summary>	
		public string NodeElement
		{
			get { return _nodeElement; }
			set { _nodeElement = value; }
		}

		/// <summary>	
		/// Método construtor	
		/// </summary>	
		/// <param name="dropdown">Dropdown a ser preenchida</param>	
		/// <param name="urlXml">Endereço do xml a ser lido</param>	
		/// <param name="fieldText">Campo que possui o valor dos itens</param>	
		/// <param name="fieldValue">Campo que possui o texto dos itens</param>	
		/// <param name="nodeElement">Identificação do elemento onde estão guardados os itens a processar</param>	
		public FillDropdownList(DropDownList dropdown, string urlXml, string fieldText, string fieldValue, string nodeElement, string textDefault)
		{
			this._ddl = dropdown;
			this._ddlText = fieldText;
			this._ddlValue = fieldValue;
			this._urlXml = urlXml;
			this._nodeElement = nodeElement;
			this._textDefault = textDefault;
		}

		/// <summary>	
		/// Preencher DropdownList	///	 
		/// nota: o tratamento de erros deverá ser mais elaborado ...	
		/// </summary>	
		public void FillDropdown()
		{
			DataSet dataSet = new DataSet();
			dataSet = new DataSet(this._nodeElement);
			dataSet.ReadXml(this._urlXml);
			this._ddl.DataSource = dataSet.Tables[this._nodeElement];
			this._ddl.DataTextField = this._ddlText;
			this._ddl.DataValueField = this._ddlValue;
			this._ddl.DataBind();

			if (this._textDefault.Length <= 0)
			{ this._ddl.Items.Insert(0, new ListItem("(escolha um item)", "")); }
			else
			{ this._ddl.Items.Insert(0, new ListItem(this._textDefault, "")); }
			dataSet.Dispose();
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Remova isso:

namespace EmailSend.Class
{
}

Você está usando um projeto Web Site né?

Provavlmente o artivo usou Web Application, em Web Site não é usado namespaces.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas se eu remover o:

namespace EmailSend.Class
{
}

o arquivo contato.asp.cs tem que usar

// Usei esta definição pois em minha Classe FillDropdownList.cs eu criei um namespace
using EmailSend.Class;
..
...
....
.....
Linha 30:			 FillDropdownList ddl = new FillDropdownList(this.DDListAssunto, urlXmlService, "Descricao", "IDAssunto", "assunto", "Selecione");

essa aplicação funciona no site codigofonte mas quando pego o codigo e coloco no meu projeto nao funciona...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte, no projeto do codigo fonte o arquivo "FillDropdownList.cs" estava na pasta "App_Code" e o do meu estava "App_Data"...

simplismente troquei o nome da pasta "App_Data" para "App_Code" e ele funcionou normalmente

 

Agora queria saber o porque? não achei esta referência nos arquivos, aonde que fica?

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

App_Data é onde fica os arquivos do banco de dados (*.mdf).

Se você criar uma classe no seu projeto vai ver que o visual studio vai criar esta pasta App_Code.

 

De qualquer forma, aconselho a você usar Web Application ao invés de Web Site. Veja mais em:

http://unplugged.giggio.net/unplugged/post...pplication.aspx

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.