Eksponere min egen ValueType(struct) til COM
Jeg er ved at lave min egen ValueType i C#, denne har jeg brug for at kalde fra COM. Der er dog det problem at den som standard ikke bliver eksponeret korrekt.Den ser ca. sådan ud, men jeg har dog fjernet en del som bare var gentagelser:
public struct FinVal
{
private bool _assigned;
private bool Assigned
{
get
{
return _assigned;
}
set
{
_assigned = value;
}
}
private double _vaerdi;
public double Vaerdi
{
get
{
if(Assigned)
return _vaerdi;
else
throw new Exception("Vaerdien er ikke sat!: " + this.GetType().TypeInitializer.Name);
}
set
{
Assigned = true;
_vaerdi = value;
}
}
public static FinVal operator + (FinVal val1, FinVal val2)
{
return new FinVal( val1.Get(val1.ValutaKode) + val2.Get(val1.ValutaKode), val1.ValutaKode);
}
.....
public static explicit operator int(FinVal val)
{
return (int)val.Vaerdi;
}
public static implicit operator FinVal(int val)
{
return new FinVal(val, ValutaHandler.eValutaKode.DKK);
}
.....
}
Når jeg så f.eks. prøver at bruge den fra delphi, for jeg ikke andet end 2 variabler nemlig _assigned og _vaerdi, og det er ikke muligt at initialisere dem hverken ved at sætte værdien direkte eller via de operator overloads som jeg har lavet.
Nogen som kan hjælpe?