向 c# 嵌入式不和谐消息添加一个字段

Add a field to a c# embedded discord message

在我的 Wpf C# 文档中,我需要找到一种将嵌入式消息发送到 webhook 的方法,我在 Internet 上找到了一些示例并将它们放入我的文件中。尽管如此,我仍然找不到如何向嵌入式消息添加字段,这是代码:

public class Json
{
    // 'Username' value
    [JsonProperty("username")]
    public string username { get; set; }
    // 'Avatar' value
    [JsonProperty("avatar_url")]
    // 'Content' value --> Always empty because we are using embed
    public string avatarurl { get; set; }
    [JsonProperty("content")]
    public string content { get; set; }
    // 'Embed' array value
    [JsonProperty("embeds")]
    public List<Embed> embeds { get; set; }
}

/*
   Json class to compile the single embed
   Action: n/a
*/
public class Embed
{
    [JsonProperty("author")]
    public Author author { get; set; }
    [JsonProperty("title")]
    public string title { get; set; }
    [JsonProperty("url")]
    public string url { get; set; }
    [JsonProperty("description")]
    public string description { get; set; }
    [JsonProperty("color")]
    public int color { get; set; }
    [JsonProperty("fields")]
    public List<Fields> fields { get; set; }
    [JsonProperty("thumbnail")]
    public Thumbnail thumbnail { get; set; }
    [JsonProperty("image")]
    public Image image { get; set; }
    [JsonProperty("footer")]
    public Footer footer { get; set; }

}

/*
   Json class to compile the author in an embed
   Action: n/a
*/
public class Author
{
    [JsonProperty("name")]
    public string name { get; set; }
    [JsonProperty("url")]
    public string url { get; set; }
    [JsonProperty("icon_url")]
    public string iconurl { get; set; }
}


/*
   Json class to compile the fields in an embed
   Action: n/a
*/


/*
   Json class to compile the thumbnail in an embed
   Action: n/a
*/
public class Thumbnail
{
    [JsonProperty("url")]
    public string url { get; set; }
}

/*
   Json class to compile the image in an embed
   Action: n/a
*/
public class Image
{
    [JsonProperty("url")]
    public string url { get; set; }
}

/*
   Json class to compile the footer in an embed
   Action: n/a
*/
public class Footer
{
    [JsonProperty("text")]
    public string text { get; set; }
    [JsonProperty("icon_url")]
    public string iconurl { get; set; }
}

/*
   Json class to compile the config
   Action: CONFIG
*/
public class Config
{
    [JsonProperty("webhook_url")]
    public string webhook { get; set; }
    [JsonProperty("json")]
    public Json json { get; set; }
}
public class Fields
{
}

然后,在 EmbedBuilder.cs class 我有:

public class EmbedBuilder
{
    /*
        Builds the JSON according to the local values
        Action: COMPILE/EXECUTE
    */
    public static void buildEmbed()
    {
        Json json = new Json()
        {
            embeds = new List<Embed>()
            {
                new Embed
                {
                    author = new Author
                    {
                        name = "",
                        iconurl = "",
                    },
                    title = "",
                    url = "",
                    color = 14957895,
                    description = "",
                    thumbnail = new Thumbnail
                    {
                        url = "",
                    },
                    image = new Image
                    {
                        url = ""
                    },
                    footer = new Footer
                    {
                        text = "",
                        iconurl = "",
                    }
                }
            }

        };
        // Call the HTTP client and execute request
        HTTP.MakeRequest(Properties.Settings.Default.discordhook, Newtonsoft.Json.JsonConvert.SerializeObject(json));

    }

    /*
        Compiles the local values into the format provided in Json.cs. Must have run the webhook once (soon will be dynamic)
        Action: COMPILE/SAVE
    */
    public static string saveEmbed()
    {
        // Make a new config
        Config json = new Config()
        {
            webhook = Properties.Settings.Default.discordhook,
            json = new Json
            {
                embeds = new List<Embed>()
                {
                    new Embed
                    {
                        author = new Author
                        {
                            name = "",
                            iconurl = "",
                        },
                        title = "",
                        url = "",
                        color = ,
                        description = "",
                        thumbnail = new Thumbnail
                        {
                            url = "",
                        },
                        image = new Image
                        {
                            url = ""
                        },
                        footer = new Footer
                        {
                            text = "",
                            iconurl = "",
                        }
                    }
                }
            }
        };
        // Return a serialized value
        return JsonConvert.SerializeObject(json);

    }
}

我怎样才能在我的消息中添加一个 discord 嵌入字段,这里有一张图片:

这只是我在互联网上找到的一个例子,我并不是专门寻找如何创建完全相同的东西,只是寻找如何添加一个字段。

在对 discord 开发人员门户网站进行了一些有关嵌入的研究后,我设法做到了 (https://birdie0.github.io/discord-webhooks-guide/structure/embed/fields.html)。主要问题是我没有将它设置为数组,这里是正确的代码:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfApp1
{

/*
   Json class to compile the full embed
   Action: n/a
*/
public class Json
{
    // 'Username' value
    [JsonProperty("username")]
    public string username { get; set; }
    // 'Avatar' value
    [JsonProperty("avatar_url")]
    // 'Content' value --> Always empty because we are using embed
    public string avatarurl { get; set; }
    [JsonProperty("content")]
    public string content { get; set; }
    // 'Embed' array value
    [JsonProperty("embeds")]
    public List<Embed> embeds { get; set; }
}

/*
   Json class to compile the single embed
   Action: n/a
*/
public class Embed
{
    [JsonProperty("author")]
    public Author author { get; set; }
    [JsonProperty("title")]
    public string title { get; set; }
    [JsonProperty("url")]
    public string url { get; set; }
    [JsonProperty("description")]
    public string description { get; set; }
    [JsonProperty("color")]
    public int color { get; set; }
    [JsonProperty("fields")]
    public List<Field> fields { get; set; }
    [JsonProperty("thumbnail")]
    public Thumbnail thumbnail { get; set; }
    [JsonProperty("image")]
    public Image image { get; set; }
    [JsonProperty("footer")]
    public Footer footer { get; set; }

}

/*
   Json class to compile the author in an embed
   Action: n/a
*/
public class Author
{
    [JsonProperty("name")]
    public string name { get; set; }
    [JsonProperty("url")]
    public string url { get; set; }
    [JsonProperty("icon_url")]
    public string iconurl { get; set; }
}


/*
   Json class to compile the fields in an embed
   Action: n/a
*/


/*
   Json class to compile the thumbnail in an embed
   Action: n/a
*/
public class Thumbnail
{
    [JsonProperty("url")]
    public string url { get; set; }
}

/*
   Json class to compile the image in an embed
   Action: n/a
*/
public class Image
{
    [JsonProperty("url")]
    public string url { get; set; }
}

/*
   Json class to compile the footer in an embed
   Action: n/a
*/
public class Footer
{
    [JsonProperty("text")]
    public string text { get; set; }
    [JsonProperty("icon_url")]
    public string iconurl { get; set; }
}

/*
   Json class to compile the config
   Action: CONFIG
*/
public class Config
{
    [JsonProperty("webhook_url")]
    public string webhook { get; set; }
    [JsonProperty("json")]
    public Json json { get; set; }
}
public class Field
{
    [JsonProperty("name")]
    public string name { get; set; }

    [JsonProperty("value")]
    public string value { get; set; }

    [JsonProperty("inline")]
    public bool inline { get; set; }
}
}