System.Versionを返すWCF操作MyGetVersion()があります。 Silverlightサービスリファレンスからの呼び出しをデバッグするとき、サービスが正しいSystem.Versionオブジェクトを返すことを確認しました。サービス参照に、自動生成方法:Silverlight ServiceReferenceによりMethodAccessExceptionが発生する
public System.Version EndMyGetVersion(System.IAsyncResult result) {
object[] _args = new object[0];
System.Version _result = ((System.Version)(base.EndInvoke("MyGetVersion", _args, result)));
return _result;
}
は、例外が発生:方法によって
試み「DynamicClass.ReadVersionFromXml(System.Runtime.Serialization.XmlReaderDelegator、System.Runtime.Serialization.XmlObjectSerializerReadContext、メソッドにアクセスするために 'System.Version..ctor()' System.Xml.XmlDictionaryString []、System.Xml.XmlDictionaryString [])が失敗しました。
これを確認するには、「break on CLR exception」ヘルパーを有効にする必要がありました。それ以外の場合は、TargetInvocationExceptionです。私が知る限り、System.Version()コンストラクタはpublicです。私は間違って何をしていますか?
残念ながら、契約は他のサービスで使用されており、他のクライアントはSystem.Versionを期待しています。私は推測するSilverlightクライアントの文字列として返す操作を追加する必要があります。 – GWTF
上記の答えで追加したように、生成されたSLのプロキシを変更することもできます。このアプローチの唯一の問題は、Silverlightからサービス参照を更新するたびにクラスを再度置き換える必要があることです。 – carlosfigueira