如何制作类的只读版本?

我有一个具有各种公共属性的类,我允许用户通过属性网格进行编辑。 对于持久性,此类还通过DataContractSerializer与XML文件进行序列化/反序列化。 有时我希望用户能够将他们所做的更改保存(序列化)到类的实例中。 但在其他时候,我不想让用户保存他们的更改,而应该将属性网格中的所有属性都看作只读。 我不想让用户进行以后永远无法保存的更改。 类似于MS Word将允许用户打开当前由其他人打开但仅作为只读的文档。 我的类有一个布尔属性,用于确定该类是否应该是只读的,但是是否可以使用此属性以某种方式在运行时动态地向类属性添加只读属性? 如果不是什么是替代解决方案? 我应该将我的类包装在只读包装类中吗?

WPF使用鼠标和触摸拖放Adorner

我希望这是一个很好的问题,所以我会详细写下我想要实现的内容,我在互联网上发现的内容,并展示我到目前为止所做的以及我尝试过的内容。 我需要在我的应用程序中添加拖放function。 我有图像(基本上是控件),我想拖动到列表框的项目。 这是示例UI: 这是我现在的用法: 正如您所看到的,我可以拖动四个图像中的一个并将其放在列表框项目上。 如果我将图像移动到正确的目标(列表框图像)上,光标附近的图像会消失并且一切正常,但是当我不将图像放在列表项目(我释放鼠标)上时,该图像会停留在屏幕上。 我的解决方案基于这个问题的答案,我无法删除那个不需要的窗口(光标附近的图像) 我的XAML看起来像这样: 和代码背后: public partial class MainWindow { private readonly ObservableCollection _people = new ObservableCollection(); public ObservableCollection People { get { return _people; } } public MainWindow() { InitializeComponent(); _people.Add(new Person() {Name = “Person1”, Points = 10}); _people.Add(new Person() {Name = “Person2”, Points = 0}); _people.Add(new Person() {Name […]

如何在c#中获取可移动磁盘列表?

我想在c#中获取可移动磁盘列表。 我想跳过本地驱动器。 因为我希望用户只将文件保存在可移动磁盘中。

entity framework核心 – 延迟加载

鞠躬我的Visual Studios请求,我使用Entity Framework Core(1.0.1)开始了我的最新项目 所以编写我的数据库模型,因为我总是使用’​​虚拟’说明符来启用List的延迟加载。 虽然在加载父表时,似乎子目录永远不会加载。 父模型 public class Events { [Key] public int EventID { get; set; } public string EventName { get; set; } public virtual List EventInclusions { get; set; } } 儿童模特 public class EventInclusions { [Key] public int EventIncSubID { get; set; } public string InclusionName { get; set; } […]

如何validationryujit是否正在使用我的应用程序?

我已经为.NET RyuJit安装了新的Jit编译器,并按照安装文档中的描述在regedit中设置了.NetFramework中的AltJit = *键。 http://blogs.msdn.com/b/dotnet/archive/2013/09/30/ryujit-the-next-generation-jit-compiler.aspx 那么如何validationRyuJit实际上是否正在使用?

MSTEST PrincipalPermission

如何对使用PrincipalPermission属性修饰的代码进行unit testing? 例如,这有效: class Program { static void Main(string[] args) { AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); var c = new MyClass(); } } [PrincipalPermission(SecurityAction.Demand, Role = @”BUILTIN\Users”)] class MyClass { public MyClass() { Console.WriteLine(“This works.”); } } 这会抛出SecurityException: [TestClass] public class UnitTest1 { [TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); } [TestMethod] public void TestMethod1() { var c = new […]

使用JSON.NET将属性反序列化为ExpandoObject

例如,有一个像下一个的对象: public class Container { public object Data { get; set; } } 它以这种方式使用: Container container = new Container { Data = new Dictionary { { “Text”, “Hello world” } } }; 如果我反序列化从序列化上面的实例获得的JSON字符串, Data属性,即使我提供ExpandoObjectConverter ,它也不会反序列化为ExpandoObject : Container container = JsonConvert.Deserialize(jsonText, new ExpandoObjectConverter()); 如何反序列化使用匿名对象分配的类属性,或者至少不是具体类型作为ExpandoObject ? 编辑: 有人回答说我可以使用动态对象。 这对我不起作用。 我知道我可以这样做,但事实并非如此,因为我需要一个ExpandoObject。 谢谢。 编辑2: 其他一些用户回答我可以将JSON字符串反序列化为ExpandoObject 。 这不是这个问题的目标。 我需要反序列化具有动态属性的具体类型。 在JSON字符串中,此属性可以是关联数组。

DebugBreak()在C#中等效

在C#中有任何等同于DebugBreak()的语句。 我希望在满足特定条件时调用调试器。 请帮忙

添加在Visual Studio 2017 RC中构建.NET Core项目后运行的msbuild任务

在Visual Studio 2017 RC中是否有像msbuild中的AfterBuild Target和.NET Core? 我尝试将以下剪辑添加到.csproj文件中,但在构建期间不会执行此操作(与VS2015相反,它可以正常工作)。 另一个有趣的发现:我认为AfterBuild目标可能已被删除 – 运行msbuild /t:AfterBuild似乎没有调用添加的目标。 如果我将目标重命名为“Test”,则使用msbuild /t:Test调用它msbuild /t:Test它的工作正常。 另外,是否有关于Visual Studio 2017 RC附带的msbuild版本(以及可能的.NET Core构建脚本)的任何文档?

将自定义日期格式(字符串)转换为日期时间

我有一大组(1亿多个)观察结果,日期表示为自定义字符串格式。 我们没有生成日期字符串,我只需要将日期字符串转换为日期时间类型。 如何将字符串日期(例如,2010年6月12日)转换为日期时间? 我的想法是将字符串解析为组件,以正确的顺序组装它们,并将该字符串传递给datetime的构造函数。 有没有办法将datetime()传递给自定义日期格式字符串? 谢谢!