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å... :)
------------------ Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it... webEye.nuSweQuake.com
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?