私は大学のプロジェクトとして自動車オークションのウェブサイトを作っています。このサイトでは Web サービスを使用してすべての処理を行っていますが、私の作業を楽にするために、車に関する情報を格納するクラスを作成しました。
public class Car
{
private int id;
private string name;
private string desc;
private int startbid;
private DateTime closingdate;
public int Id
{
get
{
return id;
}
}
public string Name
{
get
{
return name;
}
}
public string Description
{
get
{
return desc;
}
}
public int StartBid
{
get
{
return startbid;
}
}
public DateTime ClosingDate
{
get
{
return closingdate;
}
}
public Car(int id, string name, string desc, int startbid, DateTime closingdate)
{
this.id = id;
this.name = name;
this.desc = desc;
this.startbid = startbid;
this.closingdate = closingdate;
}
}
ブラウザで .asmx を表示しようとするたびに、このクラスにはパラメーターなしのコンストラクターがないため、このクラスをシリアル化できないというエラーが表示されますが、このクラスを使用するものはすべてCar
Web サイトで正常に動作します (例:車に関する情報を表示すると、例外なくすべてが表示されます)。そのため、Web サービスはまだ機能しており、何らかの形でCar
クラスがまだシリアル化されています。これはどのように可能ですか?
public Car() {}
編集: .asmx を適切に表示するには、クラスに追加する必要があることを知っていますがset
、すべてのプロパティにメソッドを追加する必要もあります。これらの結果はデータベースから取得されるため、実際にはやりたくありません。したがって、(この場合) 読み取り専用です。では、この場合の適切な解決策は何ですか? おそらくObsolete
属性かそれに類するものでしょうか?