ドキュメント

​
​

Development

User Acquisition

Monetization

産業

Cloud Code

Open Unity Dashboard

Cloud Code

LiveOps
​
​
Cloud Code
  • Overview
  • Get started
  • Server authority
  • Cloud Code C# modules
    • Overview
    • Get started
    • Concepts
    • Tutorials
      • Run modules
      • Write modules
      • Development essentials
        • Write unit tests
        • Dependency injection
        • Custom serialization
        • Batch requests
        • In-memory cache
      • Automate deployment
      • Integrate services
      • Advanced configuration
      • Use Cases
    • Reference
  • Cloud Code JavaScript scripts
  • Logging
  • Use-case samples
  • Privacy and consent
  1. Cloud Code

依存性注入

Decouple hard-coded dependencies in your code using dependency injection for easier unit testing.
読み終わるまでの所要時間 5 分
最終更新 9ヶ月前

Cloud Code には依存性注入 (DI) のサポートがあります。これにより、コード内でハードコードされた依存関係を分離し、単体テストを簡単にすることができます。ここでの DI は、.Net によって作成される類似のシステムに基づいています。
Cloud Code は、以下の依存関係タイプのサポートを提供します。
  • シングルトン: シングルトン依存関係は、1 回作成されてから、必要に応じて挿入されます。
  • スコープ付き: スコープ付き依存関係は、リクエストごとに 1 回作成されます。コンストラクタで使用するかメソッドで使用するかは問題ではありません。どちらも同じオブジェクトにリンクするからです。
  • 一時的: 一時的依存関係は、リクエストされるたびに作成されます。コンストラクタで一時的依存関係をリクエストし、メソッドでもう一度リクエストする場合、この 2 つのリクエストは 2 つの別々のインスタンスです。

依存性注入の設定

依存関係を設定するには、
ICloudCodeSetup
インターフェースを実装するクラスを作成する必要があります。
以下の例では、シングルトンインターフェースとその実装を定義しますが、
AddScoped
または
AddTransient
を使用してスコープ付きまたは一時的依存関係を使用することもできます。
C#
using Unity.Services.CloudCode.Core;namespace ExampleModule;public interface IRandomNumber{ public int GetRandomNumber();}public class LockedRandomNumber : IRandomNumber{ private int randomNumber; public LockedRandomNumber() { randomNumber = Random.Shared.Next(); } public int GetRandomNumber() { return randomNumber; }}public class ModuleConfig : ICloudCodeSetup{ public void Setup(ICloudCodeConfig config) { config.Dependencies.AddSingleton<IRandomNumber, LockedRandomNumber>(); }}
メモ:
  • シングルトンは、乱数を 1 回生成し、サービスがライブである限りそれを保持します。
  • スコープ付きでは、リクエストごとに新しいインスタンスが作成されますが、どこでリクエストするかにかかわらず、そのリクエストに対する数値は同じままです。
  • 一時的では、1 回リクエストするたびに新しいインスタンスが作成されるため、毎回乱数が返されます。

依存性注入の使用方法

依存性注入をサポートするには、以下の例で示すように、メソッドに
CloudCodeFunction
属性をクラスコンストラクタとともに指定します。
C#
using Unity.Services.CloudCode.Core;namespace ExampleModule;public struct DependencyInjectionResult{ public int ConstructorNumber; public int MethodNumber;}public class TestDependencyInjection{ private int number; public TestDependencyInjection(IRandomNumber randomNumber) { number = randomNumber.GetRandomNumber(); } [CloudCodeFunction("TestInjection")] public DependencyInjectionResult TestInjection(IRandomNumber randomNumber) { return new DependencyInjectionResult { // Will always return the same number during the session ConstructorNumber = number, MethodNumber = randomNumber.GetRandomNumber(), }; }}
注意
警告: シングルトンは複数のリクエスト間で保持されますが、需要を満たすために必要な場合、Cloud Code は複数のポッドにスケールされるため、リクエスト間では異なる可能性があります。
依存性注入の使用方法 については、Microsoft のドキュメントを参照してください。

Copyright © 2026 Unity Technologies
法規事項プライバシーポリシークッキーDocumentation Terms of Use私の個人情報を販売または共有しないプライバシーに関する選択 (クッキー設定)

"Unity" の名称、Unity のロゴ、およびその他の Unity の商標は、米国およびその他の国における Unity Technologies またはその関係会社の商標または登録商標です (詳しくはこちら)。その他の名称またはブランドは該当する所有者の商標です。

一部のページは利便性向上のため機械翻訳を使用しており、内容に不正確な表現が含まれる場合があります。内容に齟齬または不一致が生じた場合は、英語版を正本とします。

  • このページ
    • 依存性注入の設定

    • 依存性注入の使用方法


このページの問題を報告する