- PR -

C# SoapFormatterでprivateフィールドをシリアライズする方法

投稿者投稿内容
れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2007-11-24 05:34
引用:

じゃんぬねっとさんの書き込み (2007-11-24 04:10) より:
ん? 別に私もれいさんを否定しているわけではないので、そう言われても困ってしまいます。


ああぅ。大失態です。

ただひとえに私の引用の仕方が悪かっただけだと思います。
ごめんなさい。ごめんなさい。

じゃんぬさんの投稿を引用しましたが、
じゃんぬさんに言っていた訳ではないのです。

状況説明をさせてください。

Jittaさんに嫌味に取られてしまったかと思い、返信することにして、
囚人さんやじゃんぬさんなど、皆さんの意見を見つつ書いていました。
じゃんぬさんの投稿を読んだ際に謝罪に言及されていて、
そのときに、
「あ、私は別に謝罪欲しいわけじゃないからそれも言っておかなきゃ」
と、思いついてしまったのです。
で、もうあほなことに、もうどうしょうもないくらいダメなことに、
思いついたきっかけとなった
じゃんぬさんの文章を「きっかけだから」という理由で引用してしまったのです。

じゃんぬさんに言いたいことは何もなかったのにもかかわらず、です。
(正確には「場を汚しちゃってごめんなさい」と思ってただけです。)

で、その愚考に気がつかず投稿し、
しばらくして読み返してなんか変だなと推敲したのですが、
何が変なのかよくわからず、
失敗した気がしたので追記したのですが、違和感はぬぐえず…。
で、今気づいた次第です…。

引用:

えーっと、何度もこうだと会話になっていないような気がしてならないのですが... 私の先の投稿にれいさんに批判的な内容が少しでもありましたでしょうか? 最初の 3 行は 「こういう意味なのではないでしょうか」 ということを囚人さんとれいさんに向けて書きました。 しかし残りはすべて内容からしてどう考えても Jitta さんに向けての発言です。

私に至らぬ点があれば謝罪致しますが、私は私で何だか (実際には違いますが) 八つ当たりされたような印象を受けました。



うぅ。
まるでじゃんぬさんを批判してるよう見えますよね。
というか、変な状況になってます。

引用:

最初に私が見た時にはこの部分は書かれていませんでした。 先日読んだ時はしばらく @IT 会議室には行かないでおこうと思うくらい微妙な気持ちになったものです。 そしてこの文を見た今でも 「引用した意味がわからないので」 疑問を解決したい欲求から微妙な気持ちになっています。



追記はより深みにはまっただけのようです。

実は前も一回ここで引用の仕方を間違えたことがありまして、
あとで自分の投稿の意味が自分でわからないことがありました。
そのときは対して問題にならなかったんですが、
穴に入りたい気分でした。

気分を害してしまい、申し訳ありませんでした。
深く反省いたします。

謝罪ついでというわけではないですが、
原因の一端でもあると思うので。

私は語調がきついようです。
逃げ場がない言い方をするというか、断定的らしいのです。
職場では問題ないので職業病っぽいのですが、
婉曲表現を使うと何言ってるのか(ただでさえわからないのに、より)わからなくなります。
今回のはそもそもの原因が「引用の仕方が意味不明」だったのですが、
もう少しまともな表現ができてれば違っていたかもと思います。

きっと不快な思いをされた方が他にもいると思います。
なるべく直すよう精進いたしますので、ご容赦のほどを。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-26 01:43
私も少々気にしすぎだったようですね。 こちらも非礼については謝罪致します。

語調については技術的な話をしている分には私は構わないと思いますが、これも読み手に依存するのでなかなか難しいものではありますね。 Jitta さんの投稿も同じことが言えるのですが、かといって本心を覆い尽くすほどに無難な投稿というのも (特に回答者に多くなると思いますが) フラストレーションが溜まるのではとも思いました。

言いたいことは伝えやすく、かつイヤミや見下しにならないようにというのは難しいですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2007-11-26 12:08
私の記事で多くの方々に摩擦を生じさせてしまったようで本当に申し訳なく思っています。Jittaさんが指摘されたように過去の記事やMSDNに、もう少し注意を払うように努めたいと思います。

私に責任がありますので、質問に至ったいきさつについて書かせていただきます。(言い訳になってしまうので心が非常にとがめますが...)

【いきさつ】
私の関心の出発点は「privateフィールドを含んでいる独自クラスが列に定義されているDataTableを格納しているDataSetをどうすればシリアライズできるか?」というごとでした。DataSet.WriteXmlメソッドでシリアライズできなかったからです。
調べてみるとSystem.Runtime.Serialization.Formatters.Soap名前空間にあるシリアライザを使えば任意のオブジェクトをprivateフィールドも含めてシリアライズできることを知りました。早速、DataSetをシリアライズしてみました。上述したように関心事がDataSetにあったため、DataSet以外でテストしようとは考えませんでした。DataTableに含める独自クラスに[Serializable]属性をつけませんでしたが、実行時エラーが発生しませんでした。通常のクラスをシリアライズした場合とDataSetをシリアライズした場合の振る舞いが違うことを想定していなかったため、[Serializable]に注意を払いませんでした。


従って、私が知りたかった内容は、囚人さんの回答で氷解しました。
「DataSet のシリアル化のロジックを変えることはできないので、回避策は、public にするしかないんじゃないかなと思います。」

私のつたない質問に辛抱強くつきあい、貴重な時間を割いてアドバイスして下さる方々にはとても感謝しています。ごれからもこの掲示板が建設的かつ寛容さを兼ね備えた交流の場となることを願っています。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-11-27 21:38
まず、読んでいる多くの方に不快な思いをさせたことを、お詫びします。

私の書き込みの理由は、2007-11-23 08:17 の中程、参考記事が間違っていると言っているような書き込みをする前に、自分のコードを疑ってみるべきじゃないですか?が発端です。

「バカなこと」と批判されていますが、私は人を見て投稿内容を変えます。(変えることがあります)
少なくとも5年の経験がある人ならば、またこれまでの投稿内容より、見比べるくらいはして欲しい、それができる人だと思いました。


本当はチラシの裏(エディタ)に書くだけで投稿するつもりは無かったのですが、間違えて送信してしまいました。
削除しようと思ったのですが、返答をメールで受け取るようにしていればメールは送信されてしまうため、削除しませんでした。
ここで、質問者以外の方々に対する配慮が欠けていました。この点、繰り返しお詫びします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-11-27 21:38
まず、読んでいる多くの方に不快な思いをさせたことを、お詫びします。

私の書き込みの理由は、2007-11-23 08:17 の中程、参考記事が間違っていると言っているような書き込みをする前に、自分のコードを疑ってみるべきじゃないですか?が発端です。

「バカなこと」と批判されていますが、私は人を見て投稿内容を変えます。(変えることがあります)
少なくとも5年の経験がある人ならば、またこれまでの投稿内容より、見比べるくらいはして欲しい、それができる人だと思いました。


本当はチラシの裏(エディタ)に書くだけで投稿するつもりは無かったのですが、間違えて送信してしまいました。
削除しようと思ったのですが、返答をメールで受け取るようにしていればメールは送信されてしまうため、削除しませんでした。
ここで、質問者以外の方々に対する配慮が欠けていました。この点、繰り返しお詫びします。

スキルアップ/キャリアアップ(JOB@IT)