我有一些示例代码,简化了我想要完成的想法.
OptionAtrribute.cs
using System;
public class OptionAttribute : Attribute
{
public OptionAttribute(string option)
{
this.PickedOption = option;
}
public string PickedOption { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
Options.cs
using System;
public class Options
{
public const string Cat = "CT";
public const string Dog = "DG";
public const string Monkey = "MNKY";
}
Run Code Online (Sandbox Code Playgroud)
SomeClass.cs
using System;
[Option(Options.Dog)]
public class SomeClass
{
}
Run Code Online (Sandbox Code Playgroud)
如何在"SomeClass"类中获取"OptionAttribute"并获得"PickedOption"值?
更新
我不是在问如何使用反射.这是用于在保存代码的文件时生成代码.我此时没有更新的dll因此反射不起作用我试图使用Roslyn来解析实际文件.以下是我的尝试
string solutionPath = @"C:\Project\Project.sln";
var msWorkspace = MSBuildWorkspace.Create();
var solution = await msWorkspace.OpenSolutionAsync(solutionPath);
var project …Run Code Online (Sandbox Code Playgroud) 我有一个对象(ViewModel),其中我有一个私有属性,其中包含有关模型的一些元数据。我想在对象的序列化/反序列化中明确包含这个私有属性。
是否有可以添加到属性的 Json.Net 属性?
public class Customer
{
private string TimeStamp { get; set; }
public Guid CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Name
{
get
{
return FirstName + " " + LastName;
}
}
}
Run Code Online (Sandbox Code Playgroud)
“TimeStamp”属性的值在服务返回之前被注入到类中。
我希望这个属性在 json.net 序列化/反序列化过程中继续存在,以便它可以返回到服务。