webForumDet fria alternativet

"global" enum

3 svar · 244 visningar · startad av Jon

JonMedlem sedan juli 20011 304 inlägg
#1

Jag skulle vilja ha en global enum i hela min applikation.
I gamla asp fick man ju inkludera en sån på varje sida men det känns som om det borde gå att lösa snyggare i Asp.net.

Eller? :)

NETworkMedlem sedan juni 20011 732 inlägg
#2

Lägg din enum i en applikationsvariabel.

GladhMedlem sedan maj 20012 812 inlägg
#3

Skapa en ny fil som du döper till Enumerators.cs

I den filen så slänger du bort klassdefinitionen och har endast kvar namespacet.

Där i skapar du sedan dina Enums som public, och du kan nu nå dem inom ditt namespace.

[edit]
Den försvinner dock mellan olika sid anrop om du menade att den skulle finnas kvar genom hela siten.

för att lösa det så lägger du den i en applikationsvariable som berättats tidigare

Mitt sätt gör bara att den finns tillgänglig i Intellisens för din Applikation
[/enum]

- M

JonMedlem sedan juli 20011 304 inlägg
#4

Aha! Där har man lärt sig något nytt.

Jag löste det nästen på dett sätt du beskriver fast jag bygde in lite mer i det hela oxå. Blev väldigt nöjd med resultatet. Det blev nämligen samtidigt min säkerhetsfunktionalitet.

Jag gjorde enligt följande om någon undrar nån gång: :)

Definiera en klass som skall innehålla basfunktionalitet för applikationen:

using System;

namespace blaj
{
	/// <summary>
	/// Summary description for almighty.
	/// </summary>
	public class almighty : System.Web.UI.Page
	{

		public enum	AccessLevel {
			Adminsitrator=1, 
			Technician=2, 
			Superuser=3, 
			User=4
		};
		
		private int _SequrityLevel;

		public void VerifyUser()
		{
			if(Int16.Parse(Session["UsrTypeId"].ToString()) > this._SequrityLevel)
					Response.Redirect("denied.aspx");
		}

		public int SequrityLevel
		{
			get
			{
				return _SequrityLevel;
			}

			set
			{
				_SequrityLevel=value;
			}
		}
	}
		
	
}

Ärv sedan sidorna från den klassen:

using ...
namespace blaj
{
	/// <summary>
	/// Summary description for test.
	/// </summary>

	public class tasks : almighty 
	{
	 			 private void Page_Load(object sender, System.EventArgs e)
				 {
      			this.SequrityLevel = AccessLevel.Adminsitrator;
      			VerifyUser();
				}
	}
}

Det är så lätt att glömma att asp.net går att programmera på riktigt! :stud

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)