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
... 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å...
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?
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?
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
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
}
}
}
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;
}
}
}
}
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?