我们有一个从网页作为 json 传递的模型,并使用控制器中的模型构建来解析 .Net Core 3.1 服务器中的属性。我们想用自定义属性装饰该模型的某些属性,以便“帮助器”方法可以对控制器中的指定属性执行转换。
当我们的模型没有属性时,一切都可以编译并正常工作。
我们为这个模型创建了一个类(LoginModel),并用我们的自定义属性 [Courier] 装饰了一个属性。
namespace THO.Demo.API.Models
{
public class LoginModel
{
public string Email { get; set; }
[Courier(foo: "secret")]
public string Secret { get; set; }
[Courier]
public string PIN { get; set; }
}
}
我们为自定义属性创建了一个类
namespace THO.Demo.API.Models
{
[AttributeUsage(AttributeTargets.Property)]
public class CourierAttribute : System.Attribute
{
private string foobar;
public CourierAttribute(string foo)
{
foobar = foo;
}
public CourierAttribute() { }
}
}
当我尝试构建我们的项目时,我收到以下错误:
错误 CS0246 找不到类型或命名空间名称“CourierAttribute”(您是否缺少 using 指令或程序集引用?)
和
错误 CS0246 找不到类型或命名空间名称“Courier”(您是否缺少 using 指令或程序集引用?)
这两个文件在同一个项目和同一个命名空间中“并排”。我尝试用同样的问题命名属性“MyCustomAttribute”。当(在 VS2019 中)我点击属性时,我看到一个引用并且可以“跳转”到它,所以看起来至少 VS 知道它们在那里,但项目不会编译。
有什么想法吗?谢谢。