---
title: "Hur skapa denna global?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/135878-hur-skapa-denna-global"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Travoni"
published: "2005-10-17T14:29:49.000Z"
updated: "2005-10-17T22:50:02.000Z"
replies: 6
views: 315
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/135878-hur-skapa-denna-global"
---

# Hur skapa denna global?

## #1 — Travoni, 2005-10-17T14:29Z

Detta funkar:

```
 Protected Overrides Sub OnInit(ByVal e As EventArgs)
        Dim [b]bc[/b] As HttpBrowserCapabilities = Request.Browser
        If [b]bc.Browser.Trim[/b] = "IE" Then
            'Ditt
        Else
            'Datt
        End If
    End Sub
```

men...
När jag vill göra så här:

```
Private [b]bc[/b] As HttpBrowserCapabilities
...

    Public Property ImageAlign() As String
        Get
            Return strImageAlign
        End Get
        Set(ByVal value As String)
            If [b][red]bc.Browser.Trim[/red][/b] = "IE" Then
                strImageAlign = " float:" & value & ";"
            Else
                strImageAlign = " align=""" & value & """"
            End If
        End Set
    End Property

...

Protected Overrides Sub OnInit(ByVal e As EventArgs)
        [b]bc[/b] = Request.Browser
        If [b]bc.Browser.Trim[/b] = "IE" Then
            'Ditt
        Else
            'Datt
        End If
    End Sub
```

Så får jag nullReference...något på rödad fet text. Vad felar?

Kan tillägga att detta är ifrån en user control

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

## #2 — P, 2005-10-17T14:40Z

Du sätter aldrig

```
bc = Request.Browser;
```

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

## #3 — Travoni, 2005-10-17T14:43Z

Räcker det inte med att jag gör det i "onInit()"?
Om jag gör det "utanför" subben så får jag NullReferenceException då också.

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

## #4 — Travoni, 2005-10-17T15:15Z

Ok, man måste sätta det som du säger i varje property, fast det verkar vara lite jobbigt. Borde det inte gå att sätta det "globalt"?

```
    Public WriteOnly Property style() As String
        Set(ByVal value As String)
            bc = Request.Browser
            If bc.Browser.Trim = "IE" Then
                'ie
            Else
                'annan
            End If
        End Set
    End Property

 Public WriteOnly Property width() As String
        Set(ByVal value As String)
            bc = Request.Browser
            If bc.Browser.Trim = "IE" Then
                'ie
            Else
                'annan
            End If
        End Set
    End Property

 Public WriteOnly Property height() As String
        Set(ByVal value As String)
            bc = Request.Browser
            If bc.Browser.Trim = "IE" Then
                'ie
            Else
                'annan
            End If
        End Set
    End Property
'OSV.....
```

Det blir ju på en del ställen den måste fyllas/sättas...
Det måste ju finnas ett sätt för att slippa köra en request varje gång istället för att skapa en variabel....kan man tycka.

Det är ju inte så troligt att klienten byter browser åtta gånger medans sidan renderas. :)

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

## #5 — Travoni, 2005-10-17T17:44Z

Har nu lagt upp en UC här,
<http://www.webforum.nu/showthread.php?t=132850>
Fick inte till det allra sista men det får komma pöompö

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

## #6 — emission, 2005-10-17T21:32Z

> **Travoni skrev:**
>
> Ok, man måste sätta det som du säger i varje property, fast det verkar vara lite jobbigt. Borde det inte gå att sätta det "globalt"?
> ...
> Det måste ju finnas ett sätt för att slippa köra en request varje gång istället för att skapa en variabel....kan man tycka.

Mer globalt än Request blir det inte, och det är ingen overhead att kolla via Request.Browser varje gång. Din kod borde dock fungera, förutsatt att Init körs innan du försöker komma åt ImageAlign. Ett vanligt mönster för att komma runt detta är att skapa en mellan-property.

```
Private bc As HttpBrowserCapabilities
...
Public Property ImageAlign() As String
        Get
            Return strImageAlign
        End Get
        Set(ByVal value As String)
            If Me.Browser.Browser.Trim = "IE" Then
                strImageAlign = " float:" & value & ";"
            Else
                strImageAlign = " align=""" & value & """"
            End If
        End Set
End Property

Private ReadOnly Property Browser As HttpBrowserCapabilities
    Get
        If bc is Nothing then bc=Request.Browser
        Return bc
    End Get
End Property
```

Men, som sagt, det är helt onödigt eftersom Request.Browser redan finns tillgänglig och fungerar likadant.

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

## #7 — Travoni, 2005-10-17T22:50Z

Oki, tack. Då blir det så. Jag gjorde dock en liten funktion för endamålet.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/135878-hur-skapa-denna-global
