ODCでC#を取り込んでみる(External Logic)の関連。
Forgeにコンポーネントをアップロードしようと思っていくつか確認してみたことを記録(主に属性)。
環境情報
ODC Studio(Version 1.3.9)
Visual Studio Code(Version 1.85.1)
属性のパラメータには日本語が使える
以下の属性のパラメータに日本語を使ってみたところ、全て問題なく動いた。
- OSInterfaceのDescription
- OSActionのDescriptionとReturnDescription
- OSParameterのDescription
- OSStructureのDescription
- OSStructureFieldのDescription
[OSInterface(Description = "和暦を扱うActionを提供する/This External Logic provides Actions to handle Japanese Calendar (Japanese Era) ",
と設定した場合、ODC Studio上で対応する要素にも、想定通りに日本語が表示される。
戻り値のDescription
Actionの戻り値にDescriptionを指定するには、以下の2行目のように、ReturnDescriptionに設定する。
[OSAction(Description = "日を渡して、和暦形式に変換する/Converts input date to text in Japanese calendar format.",
ReturnName = "FormattedText", ReturnDescription = "元号を利用して表した日付(日本語)")]
OSParameter(ActionのInput Parameterにつける属性)の指定方法
OSParameterAttributeは、対象となる、メソッドのパラメータの直前に指定する。
以下のコード例の2,4,6行目を参照。
public string FormatDateAsJapaneseCalendar(
[OSParameter(Description = "和暦に変換する日/Date Time value to be converted into Japanese calendar format.")]
DateTime OriginalDate,
[OSParameter(Description = "Trueのとき、各元号の1年目を「元年」(「1年」ではなく)として扱う/If true, the first year in the era will be converted into '元年' instead of '1年'.")]
bool TreatFirstYearSpecially = false,
[OSParameter(Description = "Trueのとき、文字列化した年月の数字部分を全角で表現する/If true, numeric parts of stringfied Date will be expressed in full-width characters.")]
bool MakeNumbersFullWidth = false);
2行目のOriginalDateに付与したDescriptionは想定通り表示された。
External Logicのアイコン指定
OSInterfaceAttributeのIconResourceName propertyが使える。
上記のリンクの説明によると
Defines the name of the embedded resource containing the icon for the corresponding External Library.
とあり、アイコンとして利用する画像をExternal Logicに埋め込む必要がある。
まず、以下のように画像ファイルをWorkspace下に画像ファイル(Resources/JapaneseCalendar.png)を用意する。
C#のアプリケーションにリソースを埋め込み、利用するに記載がある通り、.csprojファイルに以下の設定をすることで、用意した画像を埋め込める。ItemGroup/EmbeddedResourceタグのIncludeに用意した画像ファイルのパスを設定。
<ItemGroup>
<None Update="Library\license.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<EmbeddedResource Include="Resources/JapaneseCalendar.png" />
</ItemGroup>
OSInterface属性のIconResourceNameパラメータに画像ファイルを指定。(Workspace名.フォルダ名.ファイル名)
[OSInterface(Description = "和暦を扱うActionを提供する/This External Logic provides Actions to handle Japanese Calendar (Japanese Era) ",
IconResourceName = "JapaneseCalendarODC.Resources.JapaneseCalendar.png")]
以下は、ODC Portal上でExternal Logicを開いたところ。
アイコン画像が設定されていることが確認できる。