これは私が抱えている奇妙な問題だと思います。サーバー側で定義されたいくつかのクラスがあり、サービス参照を介して参照します。そのうちの2つは正常に機能しています。サービス インターフェイスから既知の型を指定しました。
[ServiceKnownType(typeof(Obj))]
[ServiceKnownType(typeof(DigitalObject))]
[ServiceKnownType(typeof(AnalogueObject))]
[ServiceKnownType(typeof(AttributeType))]
[ServiceKnownType(typeof(AttributeData))]
Silverlight アプリケーションから、次の方法でクラスを参照します。
private ServiceReference.AttributeData commonData = new ServiceReference.AttributeData();
これは正常に動作していますが、別のクラスでまったく同じことを行っています。唯一の違いは、という名前のクラスが type のクラスから派生していることAnalogueObject
です。何が起こっているのか分かりますか?名前空間はすべて同じで、Web ソリューションを再構築し、サービス参照を更新しました。DigitalObject
Obj
クラスの例:
using System.ComponentModel;
namespace CapCon2
{
public class Obj : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _Description;
public string ID { get; set; }
public string Description
{
get { return _Description; }
set
{
_Description = value;
NotifyPropertyChanged("Description");
}
}
public void NotifyPropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
}
}
public class AttributeData : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _Description;
public string ID { get; set; }
public string Description
{
get { return _Description; }
set
{
_Description = value;
NotifyPropertyChanged("Description");
}
}
public string Attribute { get; set; }
public string DataType { get; set; }
public string Input_InputSource { get; set; }
public string Output_OutputDest { get; set; }
public void NotifyPropertyChanged(string name)
{
if (PropertyChanged!= null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
}