ASP.Net Core 2.1 - 在自定义的JsonConverter类内部使用DI是否可行?
创始人
2024-09-14 14:00:34
0

在ASP.Net Core 2.1中,在自定义的JsonConverter类内部使用依赖注入(DI)是可行的。以下是一个解决方案示例:

首先,创建一个自定义的JsonConverter类,并将其注册为服务:

public class CustomJsonConverter : JsonConverter
{
    private readonly IMyService _myService;

    public CustomJsonConverter(IMyService myService)
    {
        _myService = myService;
    }

    // 实现JsonConverter的其他方法...

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        // 在此处可以使用_myService来执行业务逻辑
        // 例如:
        var data = _myService.GetData();

        // 实现反序列化逻辑...
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        // 实现序列化逻辑...
    }
}

接下来,将该自定义的JsonConverter类注册为服务:

services.AddSingleton();

然后,可以将JsonConverter应用于需要进行自定义序列化/反序列化的属性:

public class MyClass
{
    public string Name { get; set; }

    [JsonConverter(typeof(CustomJsonConverter))]
    public CustomClass CustomProperty { get; set; }
}

最后,在使用JsonSerializer进行序列化/反序列化时,ASP.Net Core将自动注入CustomJsonConverter类的实例:

var myClass = new MyClass();

var json = JsonConvert.SerializeObject(myClass);

var deserializedObject = JsonConvert.DeserializeObject(json);

这样,你就可以在CustomJsonConverter类中使用依赖注入来执行任何需要的操作。

相关内容

热门资讯

实测教程!广东雀神小程序机制(... 1、实测教程!广东雀神小程序机制(辅助挂)原来真的有挂(有挂实锤)-哔哩哔哩2、进入游戏-大厅左侧-...
一分钟了解!熊猫四川麻将隐藏功... 一分钟了解!熊猫四川麻将隐藏功能(辅助挂)的确真的有挂(有挂攻略)-哔哩哔哩;亲们利用一分钟了解精致...
一分钟了解!红龙扑克是真是假!... 1、一分钟了解!红龙扑克是真是假!果真真的有挂((2023已更新))(哔哩哔哩)(UU poker、...
6分钟了解!云扑克内置辅助器(... 6分钟了解!云扑克内置辅助器(透视)辅助透视((2021已更新))(哔哩哔哩)1、这是跨平台的云扑克...
重大消息!胡乐麻将挂神器(辅助... 重大消息!胡乐麻将挂神器(辅助挂)原来是真的有挂(有挂秘诀)-哔哩哔哩;免费胡乐麻将挂神器平台AI辅...
热点推荐!雀神小程序能开挂(辅... 1、热点推荐!雀神小程序能开挂(辅助挂)原来真的有挂(了解有挂)-哔哩哔哩。2、雀神小程序能开挂透视...
科普!hm3德州辅助!其实是真... 科普!hm3德州辅助!其实是真的有挂((2021已更新))(哔哩哔哩);玩家必备必赢加哟《13670...
八分钟了解!wopoker透明... 八分钟了解!wopoker透明挂(透视)透视辅助((2023已更新))(哔哩哔哩)1、快速入门:当你...
重大科普!友友麻将起牌器(辅助... 重大科普!友友麻将起牌器(辅助挂)的确真的有挂(有挂规律)-哔哩哔哩准备好在友友麻将起牌器ia的高塔...
发现一款!雀神小程序有技巧(辅... 发现一款!雀神小程序有技巧(辅助挂)的确是真的有挂(有挂功能)-哔哩哔哩;玩家必备必赢加哟《1367...