掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     C# インターフェイスのproperty get定義について


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2008-11-5 11:48

C# インターフェイスのproperty get定義について

C#でインターフェイスを定義し、操作にgetterのみのpropertyを定義したい場合はどうしたらいいのでしょうか?

・getのみしか定義していないproperty操作が存在するインターフェイスが含まれるC#のソースコードをEAで読み込みます。
・そのインターフェイスにEA上で新規に操作を定義しステレオタイプにpropertyを追加して保存します。
・このインターフェイスを別なフォルダのC#のソースコードに落とします。
この手順で行うと、EA上で新規に追加した操作はget,setアクセサが定義されてしまいますが、ソースコードから読み込んだ操作はgetアクセサのみしか定義されていません。EA上では共に"property"表記になっています。
EA上で新規に追加した操作もgetアクセサのみに限定したpropertyにしたいのですが、どうやったらいいのでしょうか?

ちなみに、インターフェイスの属性でいったん適当な属性を指定し、その属性のpropertyを定義するとgetのみの指定が出来るpropertyが追加されますが、この属性を消そうとするとプロパティまで消されてしまいます。インターフェイスでは属性は定義せずにproperty操作だけの定義を行いたいのです。

以上、ご指導よろしくお願いいたします。
tkouno
投稿日時: 2008-11-5 13:20
EA Administrator
投稿: 3939

Re: C# インターフェイスのproperty get定義について

頂きましたご質問への直接の回答ではないのですが、
新規にプロパティ操作を追加する手順を説明いたします。

1. 属性のプロパティダイアログで、プロパティ操作に関連する属性を追加する。
2. 属性のプロパティダイアログで、作成した属性が選択された状態で、「プロパティ」のチェックを入れる。
3. 「プロパティの実装を編集」ダイアログが表示されるので、必要に応じて「読込」「書込」のチェックを外す。
4. propertyのステレオタイプが設定された操作が追加される。

つまり、操作に直接propertyのステレオタイプをつけるのではなく
上記の手順で作成することで、解決するのではないかと思います。


お手数をおかけし申し訳ございませんが
ご確認のほどよろしくお願いします。

未登録ゲスト
投稿日時: 2008-11-5 14:33

Re: C# インターフェイスのproperty get定義について

ご回答ありがとうございます。
ご説明いただいた手順でたしかにソースコード上でgetterのみのpropertyをもつインターフェイスが作成できました。
しかし、EAのクラス図やプロジェクトブラウザでの該当インターフェイス内にはソースコードにははき出されない属性が残っており、なんかすっきりしません。
現状では仕方ないものとあきらめるしかないのでしょうか・・・。
tkouno
投稿日時: 2008-11-5 14:42
EA Administrator
投稿: 3939

Re: C# インターフェイスのproperty get定義について

ご確認ありがとうございました。

現状、プロジェクトブラウザに属性が表示されるのは
申し訳ございませんが回避方法はありません。
(ダイアグラム内であれば、該当インターフェース要素の
属性表示をOFFにすることで対応できます。)

手作業でgetterのみ、のような設定にするためには
タグ付き値を直接編集する必要があります。
ヘルプファイルの「C#の追加情報」のページに
コード生成に影響するタグ付き値が明示されていますので
この値を独自に追加する方法もあるかと思います。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ