使用属性将枚举序列化为JSON.NET中的字符串

我想使用类似于[JsonIgnore]属性使用JSON.NET将枚举序列化为字符串 示例类: enum Gender { Male, Female } class ABC { public Gender { get; set; } } 如果我使用JSON.NET序列化它: var a = new ABC(); var str = JsonConvert.SerializeObject(a); str设置为{Gender:0} ,我更喜欢{Gender:Male} 。

如何在C#应用程序中安全地存储数据库登录名和密码?

我有一个C#应用程序需要连接到SQL数据库以不时发送一些数据。 如何安全地存储用于此作业的用户名和密码?

如何在WinForms中手动获取Graphics对象的实例?

我知道如何使用Graphics类型的对象(至少我能够渲染图像)但我总是通过传递从OnPaint方法检索的图形对象来做到这一点。 我想在应用程序打开时显示一个图像(即在Form_Load方法中),但不知道如何获取我可以使用的Graphics对象的实例? 谢谢

C#将隐含转换添加到现有类型

在C#中是否有一种方法可以将隐式转换添加到已在其他程序集中定义的类型中? 例如,如果我使用两个不同的程序集,每个程序集都提供自己的Vector3 struct ,并在其API中使用它,那么能够定义一次转换,然后将Foo.Vector3传递给一个方法就可以了。需要一个Bar.Vector3 ,并自动转换。 如果我有库的源,那么我可以添加隐式转换运算符。 如果没有这个来源,我现在每次都使用辅助函数显式地进行转换。 我希望有一个更好的方式。 我意识到我可以使用隐式转换运算符创建自己的Vector3 struct与其他两个结构,但这并不能解决我想直接将一个(外部定义的)类型的对象传递给期望的方法的所有情况。其他。 额外的问题 :是否有任何库的作者在其API中暴露像Vector3结构这样的东西应该做些什么来促进这方面的易用性?

在WPF中动画Gif

我在seprate库中使用此代码进行gif Animating,并在我的主项目中使用xaml代码: Gif Animating(分隔文件): public class GifImage : Image { #region Memmbers private GifBitmapDecoder _gifDecoder; private Int32Animation _animation; private bool _isInitialized; #endregion Memmbers #region Properties private int FrameIndex { get { return (int)GetValue(FrameIndexProperty); } set { SetValue(FrameIndexProperty, value); } } private static readonly DependencyProperty FrameIndexProperty = DependencyProperty.Register(“FrameIndex”, typeof(int), typeof(GifImage), new FrameworkPropertyMetadata(0, new PropertyChangedCallback(ChangingFrameIndex))); private static […]

如何在C#中的RegEx替换操作中使用计算值?

我正在寻找一种方法来使用c#regex.replace函数在replace表达式中使用匹配组的长度。 也就是说,我可以替换什么? 在下面的示例中,获得下面显示的所需输出? 例: val = Regex.Replace(“xxx”, @”(?x{1,6})”, “${exes} – ???”); 期望的输出 X – 3 注意:这是一个非常人为/简化的例子来certificate这个问题。 我意识到在这个例子中,正则表达式不是理想的做法。 请相信我,答案的真实世界应用是一个更复杂的问题的一部分,需要在这里使用RegEx替换。

VS2013调试/ Windows /任务:“没有要显示的任务”

我有Visual Studio Professional 2013,我正在调试一个广泛使用async / await的应用程序。 但是当我在断点处停止并打开Debug / Windows / Tasks窗口时,它总是说“没有要显示的任务”。 我做了两个测试,在一个我可以看到任务,在另一个我不能(我运行程序,并暂停它)。 或者我可以在等待任务线时断点。 using System; using System.Threading; using System.Threading.Tasks; namespace TasksDebugWindowTest { class Program { static void Main(string[] args) { DoesNotWork(); } static void Works() { Console.WriteLine(“Starting”); var t = Task.Factory.StartNew(() => { Task.Delay(100 * 1000).Wait(); Console.WriteLine(“Task complete”); }); Console.WriteLine(“Status: {0}”, t.Status); Thread.Sleep(500); Console.WriteLine(“Status: {0}”, […]

Automapper:ForMember中的复杂if else语句

假设Date是可以为空的DateTime: Mapper.CreateMap() .ForMember(dest => dest.Date, opt => opt.MapFrom(src => { DateTime? finalDate = null; if (src.HasDate == “N”) { // so it should be null } else { endResult = DateTime.Parse(src.Date.ToString()); } return finalDate; })); 我得到的错误是:“错误30带有语句主体的lambda表达式无法转换为表达式树。” 当然,我完全清楚我可以简化查询,例如: Mapper.CreateMap() .ForMember(dest => dest.Date, opt => opt.MapFrom(src => src.HasDate == “N” ? null : DateTime.Parse(src.Date.ToString()))); 但是,如果我坚持保留第一个例子的结构,因为我有更复杂的if else语句,第二个例子无法满足或至少不具有可读性,该怎么办?

C#hex到char

我有一个长度为4的hex字符串,例如“003a”。 将此转换为char的最佳方法是什么? 首先转换为字节,然后转换为char?

如何为类库包含log4net?

我想将日志function实现到类库中,类库本身在web服务中引用。 我尝试添加app.config并完成所需的一切,但似乎抛出exception时,log4net什么都不做。 我的app.config 在AssemblyInfo.cs中: [assembly: log4net.Config.XmlConfigurator(ConfigFile = “app.config”)] 在LogManager.cs中: private static readonly ILog Log = log4net.LogManager.GetLogger (MethodBase.GetCurrentMethod().DeclaringType); public static void WriteLog(Exception ex) { Log.Error(ex); } 你能告诉我什么是错的吗? 如何让log4net为我的类库工作? 谢谢