【发布时间】:2018-12-11 08:28:21
【问题描述】:
.NET Core 新手我正在尝试创建一个自定义类,我可以从不同的控制器调用它。
在我的项目的根目录中,我创建了一个名为 Helpers 的文件夹。我创建了 EncryptString.cs:
namespace VPV.Helpers {
public class EncryptString {
public string Index(string val, string salt) {
byte[] data = Encoding.UTF8.GetBytes(val + salt);
data = SHA512.Create().ComputeHash(data);
return Convert.ToBase64String(data);
}
}
}
但是如何从我的控制器调用它呢?
我尝试过类似的方法:
public async Task<IActionResult> OnPostAsync(Guid id, string password, string passwordCheck) {
hashedPassword = new VPV.Helpers.EncryptString [...]
}
但我从那里被困住了。
【问题讨论】:
-
我想你可能希望这是一个静态调用。然而,更好的方法是使该助手成为可注入服务,但不确定您是否认为这太高级或过度杀伤力。我只是建议它,因为您指出它将被多个控制器使用。
-
鉴于
OnPostAsync命名。这是一个剃须刀页面项目吗? -
我想让它尽可能简单。是否可以按照我开始的方式进行? IMO 它不能比从我需要它的控制器调用“新 VPV.Helpers.EncryptString”简单得多吗?是的,它是 Razor Pages。
-
好吧,虽然不是最好的设计,但将方法设为静态,并在需要的地方调用它。
标签: c# asp.net-core asp.net-core-mvc razor-pages