Avatar billede apocryphal Nybegynder
30. december 2002 - 16:22 Der er 8 kommentarer og
1 løsning

Kompilation og brug af egne komponenter

Hey. Jeg har nogle problemer med at få nogle ting til at virke - så jeg vil lige høre, om det overhoved lader sig gøre - eller om jeg blot gør det forkert.

Jeg har en fil (components.cs), som indeholder en masse hjemmedeffineret komponenter.

Disse komponenter benytter sig af en connectionString, deffineret i global.asax (jeg bruger samme namespace i global og components.cs (MyProject.Components)).

components.cs kompileres til components.dll og registreres i GAC.

For at gøre livet letter for grafikerne (og for mig selv!), er min tankte, at de i toppen af ASPX filerne skriver:
<@% Inherits="MyProject.Components" %>
<@% Register tagprefix="MyProject" Namespace="MyProject.Components" %>

Mit spørgemål er så, om den kode jeg har i components.dll, kan aflæse variablerne i Global.asax og Session variabler?

Årsagen til, at jeg vil bruge GAC, er at indtil flere web applikationer skal dele components.dll - så det vil gøre det lettere at opdatere og rette bugs, hvis GAC bruges.

--
Jonas
Avatar billede kichian Nybegynder
30. december 2002 - 17:45 #1
Ja. Den kan godt aflæse variablerne i Global.asax og Session variabler uden videre.
Avatar billede burningice Nybegynder
30. december 2002 - 18:04 #2
dem fra global.asax skal da læses ved hjælp af configuration ?!
Avatar billede apocryphal Nybegynder
30. december 2002 - 18:18 #3
cyberfessor:
Hvad mener du?

--
Jonas
Avatar billede kichian Nybegynder
30. december 2002 - 21:40 #4
Der er adgang til et vilkårligt namespace fra components.dll. Og derfor kan global.asax og session variable også læses.
Avatar billede burningice Nybegynder
31. december 2002 - 12:09 #5
apocryphal>>

Accessing ASP.NET Configuration Settings
ms-help://MS.NETFrameworkSDK/cpguidenf/html/cpgrfaccessingaspnetconfigurationsettings.htm

Application-specific settings stored within the top-level <appSettings> section of Web.config files can be accessed using the ConfigurationSettings.AppSettings static string collection. For example:

[Visual Basic]
Dim dsn As String = ConfigurationSettings.AppSettings("dsn")
[C#]
String dsn = ConfigurationSettings.AppSettings["dsn"];
Avatar billede apocryphal Nybegynder
31. december 2002 - 13:01 #6
cuberfessor, smarty... Det er mere stilfuldt end at ha' det i global.asax

--
Jonas
Avatar billede apocryphal Nybegynder
02. januar 2003 - 19:13 #7
kichian, det virker ikke. Jeg har en fil (SiteCubeControls.cs) med denne kildekode:

using System;
using System.Web;
using System.Web.UI;
using System.Web.SessionState;

namespace SiteCube.Client
{
    public class SingleElement : System.Web.UI.WebControls.Label
    {
        protected override void OnInit(EventArgs e)
        {
            DataBind();
            base.OnInit(e);

            base.Text = "PageId: " + Session["pageId"];
        }
        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(writer);
        }
    }
}

Dette komponent bruges på denne side:
<%@ Page Inherits="SiteCube.Client" src="SiteCubeControls.cs"%>
<%@ Register tagprefix="SiteCube" Namespace="SiteCube.Client"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
    <head>
        <title>test</title>+
        <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </head>
    <body MS_POSITIONING="GridLayout">
        <form id="test" method="post" runat="server">
            <SiteCube:SingleElement runat="server" />
        </form>
    </body>
</html>

Får denne fejl:
Compiler Error Message: CS0103: The name 'Session' does not exist in the class or namespace 'SiteCube.Client.SingleElement'

Source Error:
Line 12:             base.OnInit(e);
Line 13:
Line 14:             base.Text = "PageId: " + Session["pageId"];
Line 15:         }
Line 16:

Why?

--
Jonas
Avatar billede kichian Nybegynder
03. januar 2003 - 09:40 #8
System.Web.SessionState.HttpSessionState Session = System.Web.HttpContext.Current.Session;
Avatar billede apocryphal Nybegynder
03. januar 2003 - 16:48 #9
Det virker... Tak for hjælpen :)

--
Jonas
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester