1. スクリプティングSDK

厳密に型指定されたエンティティ

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

厳密に型指定されたエンティティは、基本のIEntityインターフェイスを拡張し、ITypedEntityから継承するSDK内の特殊なオブジェクトです。プロパティとメソッドへの直接アクセスを提供し、エンティティデータの管理を簡素化します。たとえば、IAssetエンティティは、手動で型キャストを必要とせずに、FileNameTitleなどのプロパティへのアクセスを提供します。

C# のプロパティとメソッドを使用して、同様のエンティティを作成できます。これらはすべてIEntityオブジェクトであるため、エンティティ クライアント、クエリ クライアント、およびその他のクライアントで使用できます。

Strongly typed entities are specialized objects derived from ITypedEntity, which itself derives from IEntity.

SDKでは、次の標準の厳密に型指定されたエンティティが使用されます。

厳密に型指定されたエンティティ

Namespace

プロパティ

メソッド

IMailTemplateEntity

Stylelabs.M.Sdk.Contracts.Notifications

  • 名前

  • 件名を取得して設定する

  • 本体を取得して設定する

  • 説明を取得して設定する

  • テンプレート変数を取得する

IAsset

Stylelabs.M.Sdk.Contracts.Content

  • タイトル

  • ファイル名

  • 説明を取得して設定する

  • 最終的なライフサイクルステータスを取得する ( enum値を返す)

使い

厳密に型指定されたエンティティは、一部のエンティティ メンバーをC# プロパティとして公開します。たとえば、IAssetには次のプロパティが含まれます。

string FileName {get; set;}

次の文は、FileNameの値を取得するために使用されます。

return asset.GetPropertyValue <string>("FileName");

次の文は、FileNameの値を更新するために使用されます。

asset.SetPropertyValue("FileName", value);

これらは主にショートカットであり、リレーションも同様の方法で管理されます。ただし、厳密に型指定されたエンティティは、単にプロパティとリレーションの値にアクセスしたり変更したりするだけでなく、追加の機能を提供する場合があります。

厳密に型指定されたエンティティを使用するには、まずその特定のエンティティのインスタンスを取得する必要があります。場合によっては、通知クライアントからのメソッドTask<IMailTemplateEntity> GetMailTemplateAsync(...) のように、エンティティはクライアントから直接返されます。それ以外の場合は、エンティティを手動でキャストする必要があります。

エンティティ クライアントはすべてのエンティティをIEntityとして返しますが、エンティティの定義がわかっている場合は、エンティティを正しいタイプにキャストできます。厳密に型指定されたバージョンが存在する場合、エンティティ ファクトリは適切なインスタンスを自動的に作成します。

たとえば、ID 1000を持つエンティティがアセットであることが確実な場合は、次のスニペットを使用してそのエンティティを取得できます。

IAsset asset = await MClient.Entities.GetAsync(1000) as IAsset;

その後、次のようにしてファイル名を取得できます。

string filename = asset.FileName;

部分的なエンティティ

パーシャルエンティティは、完全にロードされていないエンティティです。既定では、SDKはエンティティの一部 (既定のカルチャ、すべてのプロパティ) のみを読み込み、リレーションは読み込みません。この動作は、たとえば、負荷構成を渡すことで、そのエンティティの他の部分を読み込むように変更できます。

プロパティまたはリレーションシップが取得されない場合、SDKは読み込まれていないプロパティに対してはnullを返し、読み込まれていないリレーションシップに対しては空のコレクションを返します。読み込まれていないエンティティにプロパティを設定しようとすると、SDKは例外をスローします。これは、厳密に型指定されたエンティティにも当てはまります。

たとえば、アセットがプロパティなしでロードされ、次のようにFileNameにアクセスしようとするとします。

string filename = asset.FileName;

ファイル名がサーバー上に存在する場合でも、FileNameプロパティが読み込まれていないため、結果はnullになります。

これを回避するには、必要なメンバーを含むエンティティをロードすることを常に確認してください。さらに、厳密に型指定されたエンティティはLoadTypedMembersAsyncメソッドをサポートしており、必要に応じて厳密に型指定されたインターフェイスのすべてのメンバーを読み込むことができます。ただし、この方法はリソースを大量に消費するため、注意して使用する必要があります。

警告

厳密に型指定されたアセットは、そのメンバーが親エンティティと一致する場合にのみ正しく機能します。たとえば、M.Asset定義でFileNameプロパティの名前を変更すると、厳密に型指定されたアプローチは機能しなくなります。ただし、IEntityメソッドを使用して値を取得することはできます。

この記事を改善するための提案がある場合は、 お知らせください!