---
title: "Komponenter"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/20208-komponenter"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "SPiN"
published: "2001-05-22T08:24:00.000Z"
updated: "2001-05-23T11:24:00.000Z"
replies: 13
views: 496
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/20208-komponenter"
---

# Komponenter

## #1 — SPiN, 2001-05-22T08:24Z

I C# kan man juh skriva komponenter, men lämpar de sig bäst för just ASP.NET och C#-program, eller går de att använda lika effektivt som VB/C++/Java-komponenter med ASP? Den första tanken är juh att det borde fungera på samma smidiga sätt...

Jag har inte haft chansen att prova än, därav min lilla undran :)

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

## #2 — Vide, 2001-05-22T08:38Z

... följdfråga: kan man sedan använda komponenten utanför .NET-ramverket?

Jag byggde en komponent i C# för ett tag sedan, och det var ju himla smidigt att skriva all kod i samma språk som man använder till "vardags", och det var himmla skönt att inte behöva registrera komponenten också... :)

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

## #3 — SPiN, 2001-05-22T09:17Z

Okey, det förstår jag :)
Det är också enkelt att skapa instanser av komponenter i C# har jag märkt, nästan lika lätt som i Java, men jag har fortfarande inte fått det att funka...

Jag har en komponent, vi kallar den SPiNcomp, och en cs-fil, SPiNcs, som jag vill kunna köra min komponent genom.

**SPiNcs.cs:**

```
using System;

using SPiNcomp;

public class SPiNcs {
     public static void Main() {
          SPiNcomp sc = new SPiNcomp();
          Console.WriteLine(sc.getAValue);
     }
}
```

Jag får felmeddelandet vid kompileringen av SPiNcs.cs att den inte kunde hämta SPiNcomp. Vad kan vara fel?

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

## #4 — Mx, 2001-05-22T09:48Z

hmm, komponent är samma sak som Namespace. Så för att komma åt en klass i ett namespace måste du inkludera namespacet..

Ex

namespace SpinComp{
   public class minKlass{
     //min klass gö en massa saker
   }
}

Kompilera detta till en .dll fil och lägg denna i bin katalogen (eller skapa en bin katalog).

sen gör en ny spinnsc.cs fil

using SpinComp;

namespace spinNsc{
  public class spinNsc{
    public spinNsc(){  //konstruktor
      minKlass.görasakermetod();
      //göra mera saker
    }
  }
}

Kompilera och det skall funka.

Solklart eller hur? ;)

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

## #5 — SPiN, 2001-05-22T09:51Z

Precis som jag gjort, men jag hade bara inte lagt det i en Bin-katalog :)
Och bin/ katalogen ska ligga i samma katalog som SPiNcs.cs då, som ska bli en körbara .exe, eller hur?

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

## #6 — SPiN, 2001-05-22T10:00Z

Hmm får nu ett mycket underligt felmeddelande vid kompileringen när jag ska skapa min .exe...
Filerna:

**SPiNcomp.cs**

```
using System;

namespace SPiNcomp {
	public class SPiNtest {
		private string content	= "";
		
		public string getContent {
			get {
				return this.content;
			}
		}
		public string setContent {
			set {
				this.content = value;
			}
		}
	}
}
```

**SPiNcs.cs**

```
using System;
using SPiNcomp;

namespace SPiNcs {
	public class SPiNcs {
		public static void main() {
			SPiNcomp.setContent("SPiN!");
			Console.WriteLine(SPiNcomp.getContent);
		}
	}
}
```

Kompilerar in .dll-filen SPiNcomp.dll i bin-katalogen över där källfilerna ligger...
Felmeddelandet är att jag inte har nån entry point i min .exe, men vaffan det har jag juh :)

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

## #7 — Mx, 2001-05-22T10:09Z

Nej det har du inte alls..självklart skall main stavas med stort M ;)

case sensitive är bra eller hur :)

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

## #8 — SPiN, 2001-05-22T10:10Z

Hmm, my bad... Felmeddelande berodde på felstavning vid kompileringen :l

Jag får felmeddelandet att typen/namespacet SPiNcomp inte existerar i klassen eller namespacet ''.

Vad är fel eg.?

\[redigerat\]Jag hade stavat det med stort M först, men jag ändrade sen för att se om det hjälpte...\[/redigerat\]

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

## #9 — Mx, 2001-05-22T11:32Z

Okej, har kompilerat det själv så nu funkar det här. För det första skall .dll filen inte ligga i bin katalogen, my bad. Det är bara när man gör aspx sidor den skall ligga där..man blir lite blind när man använder visual studio och slipper tänka på allt sånt ;)

Här kommer kod...

```
using System;
using SPiNcomp;

namespace SPiNcs {
  public class SPiNcs {
    public static void Main() {
      SPiNtest test = new SPiNtest(); //du måste skapa en instans av objectet du vill använda
      test.setContent = "SPiN!"; //här tilldelar du content ditt värde genom en accessor
      Console.WriteLine(test.getContent);  //och här skriver du ut det
    }
  }
}
```

Din andra kod var ok

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

## #10 — SPiN, 2001-05-22T12:50Z

Tack så mycket för din kodbit, men jag får det juh inte att funka!
Kompilatorn säger att den inte kan hitta namespacet eller typen SPiNcomp!
**SPiNcomp.cs**

```
using System;

namespace SPiNcomp {
	public class SPiNtest {
		private string content	= "";
		
		public string getContent {
			get {
				return this.content;
			}
		}
		public string setContent {
			set {
				this.content = value;
			}
		}
	}
}
```

**SPiNcs.cs**

```
using System;
using SPiNcomp;

namespace SPiNcs {
	public class SPiNcs {
		public static void Main(string[] args) {
			try {
				SPiNtest spin = new SPiNtest();
				spin.setContent = args[0];
				Console.WriteLine(spin.getContent);
			}
			catch(Exception e) {
				Console.WriteLine("Du måste ange ett namn!");
				return;
			}
		}
	}
}
```

Ghaaa..

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

## #11 — Grynet, 2001-05-22T12:59Z

(skapade ett eget konto istället för att sno min kompanjons Mx ;))

Din kod funkar för mig. Du kanske skriver fel när du ska kompilera den?

csc /target:library /out:spincomp.dll spincomp.cs

när du skall kompilera .dll filen

csc /r:spincomp.dll /out:spin.exe spin.cs

när du skall kopilera programmet.

Var det här du gjorde fel?

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

## #12 — SPiN, 2001-05-22T13:33Z

Japp, jag hade nog inte med /r:SPiNcomp.dll ;)
Jag trodde det bara var att köra på juh! :D

Tack så mycket för all hjälp!

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

## #13 — SPiN, 2001-05-23T10:30Z

Humma... Nu har jag tänkt använda en komponent med ASP.NET, men inte funkar det heller...
Jag kompade .cs-filen som förut, men jag lade den i en bin-katalog i min webkatalog.

Jag försöker inkludera komponenten högst upp på .aspx-sidan med
\<% @Import Namespace="MinKomponent" %\>

Funkar inte. Den säger att den inte hittar MinKomponent i klassen ASP.

Hur ska jag göra för att få det att funka via ASP.NET?

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

## #14 — Grynet, 2001-05-23T11:24Z

den bin katalog du lägger .dll filen i måste ligga under roten på det virtuella bibloteket. (eller i system  biblot)

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/20208-komponenter
