V4 V5

適用する

アプリケーションの起動時に 1 回だけ、コントロールを生成する前に呼びます。

using unvell.ReoGrid.Core.License;

ReoGridLicense.SetLicense("eyJsaWNlbnNlZSI6...");

キーの形式が不正、Base64 が壊れている、署名が一致しないといった場合は ArgumentException が 送出されます。署名を検証してから内容を信頼する順序は固定されており、キーは偽造できません。

キーをソースコードに直接埋め込まず、設定ファイルや環境変数から読む形を推奨します。

var key = Environment.GetEnvironmentVariable("REOGRID_LICENSE");
if (!string.IsNullOrEmpty(key))
	ReoGridLicense.SetLicense(key);

1 本のキーがすべてを賄う

バージョン非依存アセンブリバージョン・ビルド日とキーを照合しません。V4 用に発行済みのキーが V5 でもそのまま通ります。再発行は不要です
プラットフォーム非依存キーにプラットフォームの情報はありません。1 本で WinForms / WPF / Avalonia / ヘッドレスすべてを賄います

更新が切れても動き続けます

ReoGrid One は初回購入の永続ライセンス + 任意の年間更新です(DevExpress や Telerik と同じ形)。

年間更新をしなかった場合でも、手元のバイナリは期限なく動作します。時限で停止する仕組み (kill switch)は実装していません。更新権の期限は LicenseInfo.UpdatesUntil として読み取れますが、 ライセンス判定には使いません。更新が切れて変わるのは「新しいビルドを入手できるかどうか」だけで、 これはポータルや NuGet の配布側で制御されます。

すでに出荷したアプリケーションが、更新期限を理由に動かなくなることはありません。

未適用時の動作

有効なキーが無い状態(未適用・期限切れ・allowedAssembly 不一致)では、ファイル入出力がすべて拒否されます。画面のグリッドは読み取り専用として残ります。

動く制限される
画面表示・スクロール・選択XLSX / CSV / PDF / reogrid-json の読み書きがすべて ReoGridLicenseException
数式の再計算、モデル API(SetText など)の直接操作3 つのコントロールともセル編集が不可(読み取り専用)
画面と印刷の描画に透かしが入る

入出力を例外にしているのは、ヘッドレス用途への対応です。サーバー側でファイルを生成する使い方には透かしを見せる相手がいないため、黙って出力せずに失敗させます。画面があるアプリでは透かしが状況を伝えられるので、グリッド自体は読み取り専用で動かします。

この判定は組み込み先のアプリケーションでも同じです。トライアルキーの期限が切れれば、そのキーで動いていたアプリケーションも同様に入出力が止まり、編集ができなくなります。

状態を確認する

if (!ReoGridLicense.IsLicensed)
{
	// 未適用・キーが不正・トライアル期限切れのいずれか
}

var info = ReoGridLicense.Current;
if (info != null)
{
	Console.WriteLine(info.Licensee);      // 使用許諾先
	Console.WriteLine(info.Tier);          // Trial / Production
	Console.WriteLine(info.ExpiresAt);     // トライアル期限(製品版は null=無期限)
	Console.WriteLine(info.UpdatesUntil);  // 更新権の期限(判定には使われない)
}

IsLicensed の判定に使われるのは、署名・ExpiresAt(トライアル期限)・AllowedAssembly (アセンブリ紐付けがある場合)の 3 つだけです。

LicenseInfo の主なメンバー

メンバー内容
Licensee / Email使用許諾先
TierTrial または Production
IssuedAt発行日
ExpiresAtトライアル期限専用。製品版のキーでは省略され、無期限を意味する
UpdatesUntil更新権の期限。判定には使わない
AllowedAssembly特定アセンブリへの紐付け(設定されている場合)
IsExpired / IsValid期限判定

実行時の解除はできません

一度適用したライセンスを実行中に取り消す方法はありません。テスト用の内部 API は存在しますが、 公開されていません。

次に読む

ページの内容は役に立ちましたか?