2011-10-10 30 views
8

Estoy trabajando en una aplicación web asp.net, y tengo pocas clases en mi código de aplicación, pero por alguna razón no puedo usar ninguna de ellos en mi código. Intenté usar el mismo espacio de nombres, lo intenté sin ningún espacio de nombres en ambos archivos, pero nada ayuda.por qué no puedo usar archivos de código desde app_code en mi código asp.net C#

Este es el código de la página:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using LinkedIn; 
using LinkedIn.ServiceEntities; 


namespace Authentication 
{ 
    public partial class LinkedinMoreInfo : LinkedinBasePage 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

Y mi código de la clase:

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.Xml.Linq; 

using LinkedIn; 

namespace Authorisation 
{ 
    public class LinkedInBasePage : System.Web.UI.Page 
    { 
     private string AccessToken 
     { 
      get { return (string)Session["AccessToken"]; } 
      set { Session["AccessToken"] = value; } 
     } 

     private InMemoryTokenManager TokenManager 
     { 
      get 
      { 
       var tokenManager = (InMemoryTokenManager)Application["TokenManager"]; 
       if (tokenManager == null) 
       { 
        string consumerKey = ConfigurationManager.AppSettings["LinkedInConsumerKey"]; 
        string consumerSecret = ConfigurationManager.AppSettings["LinkedInConsumerSecret"]; 
        if (string.IsNullOrEmpty(consumerKey) == false) 
        { 
         tokenManager = new InMemoryTokenManager(consumerKey, consumerSecret); 
         Application["TokenManager"] = tokenManager; 
        } 
       } 

       return tokenManager; 
      } 
     } 

     protected WebOAuthAuthorization Authorization 
     { 
      get; 
      private set; 
     } 

     protected override void OnLoad(EventArgs e) 
     { 
      this.Authorization = new WebOAuthAuthorization(this.TokenManager, this.AccessToken); 

      if (!IsPostBack) 
      { 
       string accessToken = this.Authorization.CompleteAuthorize(); 
       if (accessToken != null) 
       { 
        this.AccessToken = accessToken; 

        Response.Redirect(Request.Path); 
       } 

       if (AccessToken == null) 
       { 
        this.Authorization.BeginAuthorize(); 
       } 
      } 

      base.OnLoad(e); 
     } 
    } 
} 

Cualquier idea de lo que puede ser el problema? Gracias de antemano

+0

¿Qué error obtienes? – ChrisF

+2

¿'Autenticación' y' Autorización' son su "mismo espacio de nombres"? – mellamokb

+0

¿Se ha asegurado de que App_Code esté incluido en el proyecto? ¿Y funciona si mueve las clases de App_Code al directorio raíz de su proyecto? – James

Respuesta

10

Entra en las propiedades de los archivos, y cambiar el Build Action a Compile

+0

Gracias James, eres el hombre. Si tiene algo de tiempo, ¿puede explicarme cómo ese cambio solucionó mi problema? Muchas gracias y que tengas un buen día. – Laziale

+0

Eres bienvenido. Establecer la acción de compilación en 'Compile' asegura que el archivo de código se compila en la salida de compilación. –

+0

Llegué a mi límite de votos pero, ¡pensándolo bien, no hubiera pensado en esto! ¿Cuáles son los propósitos de las otras Acciones de compilación? – James

0

Si la página base es el nombre LinkedInBasePage, entonces usted necesita para heredar de LinkedInBasePage en lugar de LinkedinBasePage

public partial class LinkedinMoreInfo : Authorisation.LinkedInBasePage {

+0

No veo cómo se resuelve el problema del acceso a los archivos en el directorio 'App_Code'. –

+0

@sonnychiba Gracias por su ayuda, la siguiente solución solucionó mi problema. Tenga un buen día. – Laziale

Cuestiones relacionadas