Hej
Jeg er igang med at bygge en applikation i C#. Denne applikation tage fat i et fælles Library hvor al logikken til programmet et placeret. For at udfordre mig selv har jeg valgt at bygge en RESTful webservice med WCF.
Dog har jeg en udfordring med en Abstract Class og nedarvning, da serialiseringen af en collection, med nedarvede objekter, ikke kører som den skal og derfor går kommer der aldrig en response.
Mit library er bygget i forbindelse med min uddannelse og derfor er der nogle krav som skal være opfyldt undervejs. Bl.a. måtte vi ikke bruge auto-properties i vores klasser, også selvom det mere eller mindre kun var data klasser.
Jeg giver jeg lige kildekoden til min Account klasse som er den der giver mig problemet.
- [DataContract]
- [KnownType(typeof(SalaryAccount))]
- [KnownType(typeof(SavingsAccount))]
- [KnownType(typeof(Overdraft))]
- public abstract class Account
- {
- protected string name;
- protected double balance;
- protected int accountNumber;
- protected AccountType accountType;
- protected List<Transaction> transactions;
-
- [DataMember]
- public List<Transaction> Transactions
- {
- get
- {
- return this.transactions;
- }
- }
- [Display(Name="Account number")]
- [DataMember]
- public int AccountNumber
- {
- get { return this.accountNumber; }
- }
- [DataMember]
- public string Name
- {
- get { return this.name; }
- }
- [DataType(DataType.Currency)]
- [DataMember]
- public virtual double Balance
- {
- get { return this.balance; }
- set
- {
- double balanceTmp = value;
- if (balanceTmp < 0)
- {
- throw new NegativeBalanceException(string.Format("Warning!\nThe account type for account number {0} does now allow a negative balance.\nThe current balance is {1:c}", this.accountNumber, this.balance));
- }
- else
- {
- this.transactions.Add(new Transaction(this.AccountNumber, (value - this.balance)));
- this.balance = value;
- }
- }
- }
- [Display(Name="Account type")]
- [DataMember]
- public AccountType AccountType
- {
- get { return accountType; }
- }
- public abstract void AddInterest();
- }
Er der nogen som kan fortælle mig hvordan jeg uden at ødelægge den funktionalitet der ligger i min klasse, og dennes properties, kan få den til at serialisere og derved sende en response retur som kan bruges af en klient?