2010-11-24 10 views
0

、私が使用してパラメータを直列化しようとしています言うことができます:CLR型 - あまり詳細に行くことなくC#

プロセスが辞書であると私は割り当ててい要素の一つのタイプがある
tfsBuild.ProcessParameters = WorkflowHelpers.SerializeProcessParameters(process); 

IList<Microsoft.TeamFoundation.VersionControl.Client.Changeset> 

Changesetpublic sealedです。すべてのタイプがシリアライズ可能でなければなりませんので、

WorkflowHelpers.SerializeProcessParameters

Unable to serialize type 
'Microsoft.TeamFoundation.VersionControl.Client.Changeset'. 
    Verify that the type is public and either has a default constructor 
or an instance descriptor. 

で失敗します。

考え/回避策/アイデアはありますか?

おかげ

答えて

2

あなたは、いくつかの他のカスタムクラスを使用して直列化可能ではないだけで、あなたが必要とするプロパティの代わりChangesetを含めることができます。 AutoMapperは変換を容易にすることができます。

+0

@ダリン - 私は簡単な方法があると思いました:(残念ながら、私はこのプロジェクトにAutoMapperを使うことができないので、手動マッピングをする必要があると思います。 – DotnetDude

+0

私はTFS APIの仕組みを知らないこのIDからチェンジセットオブジェクトを再構築することはできませんか? –

+0

@Darin - 残念ながら、この情報をシリアル化して別のTFSサーバー上に存在するアクティビティに送信するため、アクセス権がありませんところで、私は、ChangesetにToString()メソッドがあることに気がつきました。これを文字列として送信することはできますが、宛先の文字列からIListを取得する方法はわかりません。 – DotnetDude

関連する問題