我有一个使用Smith Html编辑器的C#解决方案(我正在开发使用它的主项目,所以我对这个库不太了解),它引用了MSHTML.这工作正常,直到我升级到Windows 10,它再也找不到MSHTML了.我可以直接引用GAC文件夹上的DLL,它会停止抱怨并因此构建,但是它会得到一些与编辑器无法实例化相关的运行时错误.
经过一番研究后发现MSHTML已逐步退出Windows 10,因为它现在使用的是EdgeHTML.有谁知道我怎么能绕过这个?
该解决方案仍适用于Windows 7.
所以我有一个简单的类来表示数据库中的数据.
public class EntitySyncContext
{
public EntitySyncContext()
{
ExternalEntities = new List<ExternalContact>();
}
public HandledType HandledType { get; set; }
public Contact Entity { get; set; }
public IList<ExternalContact> ExternalEntities { get; set; }
public bool HasConflict { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是当我从这个类声明一个变量时,当我在调试时对它进行监视时,我发现上面列出的所有属性在变量中都存在两次.
EntitySyncContext matchingContext = new EntitySyncContext();
Run Code Online (Sandbox Code Playgroud)

有谁知道如何和/或为什么会发生这种情况和/或如何修复它?
后台任务注册代码如下所示:
var builder = new BackgroundTaskBuilder();
builder.Name = name;
builder.TaskEntryPoint = typeof(BackgroundTaskClass).FullName;
var trigger = new GattCharacteristicNotificationTrigger(characteristic);
builder.SetTrigger(trigger);
btr = builder.Register();
Run Code Online (Sandbox Code Playgroud)
清单中的条目是:
<Extension Category="windows.backgroundTasks" EntryPoint="BackgroundTaskNS.BackgroundTaskClass">
<BackgroundTasks>
<Task Type="deviceConnectionChange" />
<Task Type="bluetooth" />
</BackgroundTasks>
</Extension>
Run Code Online (Sandbox Code Playgroud)
Register()方法触发此错误:
访问被拒绝.
您的应用程序无权在后台使用Gatt服务.确保您已在清单中声明了DeviceCapability和任务类型"bluetooth",并且该应用程序已被授予对此设备的访问权限.
这仅发生在构建计算机上安装的Creators Update上,并且还针对Creators Update SDK.在我们更新SDK和构建机器之前,这很有效.
我在Ubuntu中使用Swift,我收到一个错误,arc4random是一个未解析的标识符.在这个已知的错误的详细信息在这里.基本上,该功能仅存在于BSD发行版中.我已经尝试过模块映射头文件,apt-getting包,并且我得到越来越多的错误,这是不值得追求的,因为这个函数不经常使用.
是否有任何函数可以获取具有与Linux中的Swift兼容的上限参数的伪随机数?
在Windows手机中,当TextBox具有焦点时,如何选择文本框中的所有文本?
我尝试设置Textbox的get focus属性:
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
TextBox textBox = (TextBox)sender;
textBox .SelectAll();
}
Run Code Online (Sandbox Code Playgroud)
我看到的是我看到所有文本被选中1-2秒然后它回到光标模式(即1个闪烁线).
我使用CommandManager.RegisterClassInputBinding将绑定添加到整个类型.现在我想删除它.
这是我测试的.
private void CommandBinding_Executed_1(object sender, ExecutedRoutedEventArgs e)
{
CommandManager.RegisterClassInputBinding(
typeof(TextBox),
new InputBinding(TestCommand, new KeyGesture(Key.S, ModifierKeys.Control)));
MessageBox.Show("CommandBinding_Executed_1");
}
Run Code Online (Sandbox Code Playgroud)
这种方法被称为上Ctrl+ H并注册新的输入结合Ctrl+ S.如果我按Ctrl+ S前Ctrl+ H这是行不通的,但是当我按下它之后.
我检查过sender.InputBindings,只有一个绑定(Ctrl+ S)所以我得出的结论是RegisterClassInputBinding(),不会将绑定添加到每个现有实例,而是存储与该类关联的绑定,然后将它们与处理过的手势进行比较.
但那么为什么没有RemoveClassInputBinding()方法呢?:(
编辑
我甚至设法通过反射做我想要的,但仍然找不到本机方法,尽管它实现起来很简单.
var fieldInfo = typeof(CommandManager).GetField(
"_classInputBindings", BindingFlags.Static | BindingFlags.NonPublic);
var fieldData = (HybridDictionary)fieldInfo.GetValue(null);
var inputBindingCollection = (InputBindingCollection)fieldData[typeof(TextBox)];
foreach (var o in inputBindingCollection)
{
if (o == inputBinding)
{
MessageBox.Show("half way there");
} …Run Code Online (Sandbox Code Playgroud) 我正在使用MVVM开发一个WPF应用程序.我的大多数视图只有xaml标记,后面的代码没有任何内容(默认样板除外).
除了一个视图之外的所有视图,当我想要禁用整个屏幕时,我使用装饰器来"屏蔽"屏幕.
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//todo: transfer to modelview
contentAreaAdorner = AdornerLayer.GetAdornerLayer(contentArea);
waitingAdorner = new WaitingAdorner(contentArea);
}
Run Code Online (Sandbox Code Playgroud)
这可以吗?或者有更好的方法在我的viewmodel中实现它?
我在实体框架上使用 DBContext,使用本教程中的过程来创建数据库。
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=blog.db");
}
}
Run Code Online (Sandbox Code Playgroud)
并使用以下内容保存:
using (var context = new BloggingContext())
{
context.Add(blog);
await context.SaveChangesAsync();
}
Run Code Online (Sandbox Code Playgroud)
我将如何将日志模式设置为 WAL 之类的东西?
我遇到了一个逐行读取文件的实现,如下所示:
using (StreamReader reader = File.OpenText(path))
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
但就我个人而言,我会这样做:
foreach (string line in File.ReadLines(path))
{
}
Run Code Online (Sandbox Code Playgroud)
有什么理由选择其中之一吗?