---
title: "static class?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/167495-static-class"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "doggelito"
published: "2007-12-21T10:27:44.000Z"
updated: "2007-12-22T14:44:46.000Z"
replies: 6
views: 550
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/167495-static-class"
---

# static class?

## #1 — doggelito, 2007-12-21T10:27Z

Yoo!
Jag försöker få till så att jag enkelt kan få ut ex. förnamn ur en inloggad användare.
Det första som slog mig då var en statisk klass så jag slipper instansiera men det vill sig inte riktigt!   :l 

Hur borde jag lösa detta?
Hit kom jag, sen blev det tvärnit!

```
public static class UserProfile
{
    private string _firstName;
    private string _lastName;
    private string _siteName;

    public static string FirstName
    {
        get { return _firstName; }
        set { _firstName = value; }
    }

    public static string LastName
    {
        get { return _lastName; }
        set { _lastName = value; }
    }

    public  string SiteName
    {
        get { return _siteName; }
        set { _siteName = value; }
    }

    public static UserProfile()
    {
        string userName = HttpContext.Current.User.Identity.Name;
        ProfileCommon pc = ((ProfileCommon)ProfileCommon.Create(userName));
        SiteManager sm = new SiteManager();
        Sites site = sm.GetSiteByUser(userName);

        _firstName = pc.FirstName;
        _lastName = pc.LastName;
        _siteName = site.SiteName;
    }
}
```

För- och efternamn har jag specat i web.config som utökade fält i profile providern så dem borde jag ju egentligen inte behöva speca här!?
Kan man ärva ProfileCommon på nått vis istället för att göra som jag försöker ovan att instansiera den i kontruktorn (som man inte får i en statisk klass)

Jag får heller inte deklarera medlemmar i en statisk klass som jag gör men jag kommer inte på hur jag bör göra!

Det jag vill få ut är ex. så här i slutändan

```
string siteName = UserProfile.SiteName;
```

Permalänk: https://www.webforum.nu/p/167495

## #2 — erka, 2007-12-21T12:36Z

Du är medveten om att din statiska klass inte är trådsäker, vilket i din applikationer kommer innebära att informationen i ditt objekt kan ändras av dina olika användare, så de får fel information?

Permalänk: https://www.webforum.nu/p/2062444

## #3 — doggelito, 2007-12-21T13:43Z

> **erka skrev:**
>
> Du är medveten om att din statiska klass inte är trådsäker

Nej, på vilket vis är den inte trådsäker och hur gör jag för att ändra?

Permalänk: https://www.webforum.nu/p/2062456

## #4 — erka, 2007-12-21T13:53Z

Finns en bra tråd om det i .net-forumet. Sök där. Det beror på att asp_net processen körs som en tråd

Permalänk: https://www.webforum.nu/p/2062458

## #5 — emission, 2007-12-21T18:50Z

Statiska instanser är gemensamma över hela applikationdomänen (AppDomain). Om du vill att det ska fungera som i ditt exempel så får du göra ungefär så här:

```
public static string SiteName
{
	get 
	{
		string userName = HttpContext.Current.User.Identity.Name;
		Sites site = sm.GetSiteByUser(userName);
		return site.SiteName;
	}
}
```

Permalänk: https://www.webforum.nu/p/2062498

## #6 — inspiro, 2007-12-22T10:22Z

Bara så jag fattat det rätt... om jag gör en statisk variabel så kommer alla användare av applikationen som når den att se samma innehåll?

Permalänk: https://www.webforum.nu/p/2062576

## #7 — emission, 2007-12-22T14:44Z

Japp!

Permalänk: https://www.webforum.nu/p/2062603

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/167495-static-class
