全部产品
Search
文档中心

事件总线EventBridge:C# SDK使用手册

更新时间:Nov 01, 2023

本文介绍了C# SDK的安装方法、示例代码以及如何使用C# SDK发布事件。

SDK简介

事件总线EventBridge的SDK分为管控API SDK和数据API SDK,示例代码有所不同。

  • 管控API SDK:对控制台页面进行操作使用的SDK。

  • 数据API SDK:事件数据的通道,目前只有发送事件(PutEvents)属于此类。

前提条件

您已完成以下操作:

环境准备

  • 环境要求

    • 安装.NET Core 2.0以上版本。更多信息,请参见安装.NET

    • 安装Visual Studio 2010以上版本。更多信息,请参见安装Visual Studio

  • 查看语言版本

    执行命令dotnet --version查看.NET Core版本。

管控API SDK

安装SDK

在Visual Studio中安装C# SDK。

  1. 选择工具 > NuGet包管理器 > 程序包管理器控制台

  2. 执行以下命令安装C# SDK。

    Install-Package AlibabaCloud.SDK.Eventbridge20200401 -Version 1.0.0

SDK示例

您可以在OpenAPI门户通过调用API接口,自动生成对应的SDK示例。具体操作,请参见如何自动生成SDK示例

数据API SDK

安装SDK

在Visual Studio中安装C# SDK。

  1. 选择工具 > NuGet包管理器 > 程序包管理器控制台

  2. 执行以下命令安装C# SDK。

    Install-Package AlibabaCloud.SDK.Eventbridge

SDK示例

数据API SDK目前只包含发布事件(PutEvents),如需使用C# SDK发布一个或多个事件,请参考以下示例代码。

using System;
using System.Collections.Generic;

using Tea;

namespace Alibabacloud.Sample
{
    public class Client
    {

        /**
         * Create client初始化公共请求参数。
         */
        public static AlibabaCloud.SDK.EventBridge.EventBridgeClient CreateClient()
        {
            AlibabaCloud.SDK.EventBridge.Models.Config config = new AlibabaCloud.SDK.EventBridge.Models.Config();
            SetAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
            SetAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
            SetEndpoint("<endpoint>")
            return new AlibabaCloud.SDK.EventBridge.EventBridgeClient(config);
        }

        /**
         * PutEvents
         */
        public static void PutEvents(AlibabaCloud.SDK.EventBridge.EventBridgeClient client)
        {
            AlibabaCloud.SDK.EventBridge.Models.CloudEvent event_ = new AlibabaCloud.SDK.EventBridge.Models.CloudEvent();
            event_.Datacontenttype = "application/json";
            event_.Data = AlibabaCloud.TeaUtil.Common.ToBytes("test");
            event_.Id = "a5074581-7e74-4e4c-868f-47e7afdf****";
            event_.Source = "acs.oss";
            event_.Specversion = "1.0";
            event_.Type = "oss:ObjectCreated:PostObject";
            event_.Time = "2020-08-24T13:54:05.965Asia/Shanghai";
            event_.Subject = "1.0";
            event_.Type = "acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg";
            event_.Extensions = new Dictionary<string, object>
            { { "aliyuneventbusname", "demo-bus" },
            };
            try
            {
                AlibabaCloud.SDK.EventBridge.Models.PutEventsResponse resp = client.PutEvents(new List<AlibabaCloud.SDK.EventBridge.Models.CloudEvent>
                {
                    event_
                });
                Console.WriteLine("--------------------Publish event to the aliyun EventBus--------------------");
                Console.WriteLine(AlibabaCloud.TeaUtil.Common.ToJSONString(resp.ToMap()));
            }
            catch (TeaException error)
            {
                Console.WriteLine(error.Message);
            }
            catch (Exception _error)
            {
                TeaException error = new TeaException(new Dictionary<string, object>
                { { "message", _error.Message }
                });
                Console.WriteLine(error.Message);
            }
        }

        static void Main(string[] args)
        {
            AlibabaCloud.SDK.EventBridge.EventBridgeClient client = Client.CreateClient();
            Client.PutEvents(client);
            Console.ReadKey();
        }

    }
}