我在VB.Net中将Sub更改为函数时遇到此错误
类型System.Collection.Generic.List(Of Mshtml.IHTMLDocument2)不能跨程序集边界使用,因为它具有嵌入式互操作类型的泛型类型参数.
有谁知道如何解决它?
我在我的Vb.Net WinForms应用程序中使用SHDocVw.InternetExplorer API从Internet Explorer获取元素.我可以轻松访问父文档和框架元素中的元素,但我无法访问'embed'容器中的元素.这是示例代码:
Dim ie As SHDocVw.InternetExplorer
ie.Navigate("Some URL")
ie.Visible = True
Dim ieDoc As mshtml.IHTMLDocument2 = ie.Document
'All Elements
Dim allElements = ieDoc.all
'Frames
Dim allFrames = ieDoc.frames
'Fetch each frame and use its document to get all elements
Dim allEmbed = ieDoc.embeds
'How to fetch document inside embed to access its elements?
Run Code Online (Sandbox Code Playgroud)
这是一个示例html:
Sample.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sample</title>
</head>
<body>
<embed src="test.html" name="test1"/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
的test.html
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sample</title> …Run Code Online (Sandbox Code Playgroud)我有一个自我引用外键的MySQL表.ON DELETE CASCADE在它中工作得非常好,但是我注意到一个奇怪的行为,它对于父实体最多只能工作14个级别.一旦我添加一个15级孩子并尝试删除父级,它就会开始抛出错误
"无法删除或更新父行:外键约束失败"
这是层次结构的图像.

尝试删除Parent将抛出错误.
此处重现行为的示例模式.在构建架构之前粘贴此行查询,其中id = 1而不是id = 2
DELETE FROM table1 WHERE id = 1;
我知道删除它的可能的解决方法
但是我想知道,对于ON CASCADE DELETE,这是一些已知的MySQL限制吗?
我使用的是MySQL服务器版本5.6
正如 Npgsql 版本 5.0 发行说明(重大更改)中所述, MSI GAC 安装程序已停止使用。发行说明中的声明如下:
Npgsql 不再针对 .NET Framework 4.6.1。由于目标是 .NET Standard 2.0,因此仍然可以从 .NET Framework 应用程序使用 Npgsql;但是,我们不再在 .NET Framework 上运行回归测试,并且只会尽力修复错误。此外,Visual Studio 扩展 (VSIX) 和 MSI GAC 安装程序已停止使用。第3269章
由于此更改,我面临的问题是我的客户使用 MSI 安装程序在 GAC 中安装 Npgsql,而我的应用程序使用.Net Framework的System.Data.Common.DbProviderFactories动态加载其工厂。这使我可以灵活地让客户根据其数据库版本选择所需的提供程序版本。
切换到 nuget 包安装将增加更新我的应用程序中的 Npgsql 包的开销。因此,我想避开这条路线。有没有办法像 MSI 安装程序一样在 GAC 中安装最新的 Npgsql 5.0 版本?
如果是,请告诉我执行步骤。
我在客户端系统上面临一个问题.在尝试使用示例代码重现它时,我已经复制了它.
这是示例代码
Imports System.IO
Public Class Form1
Private _lock As New Object
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim t As New Threading.Thread(AddressOf createFile)
With t
.IsBackground = True
.Name = Guid.NewGuid.ToString
.Start()
End With
End Sub
Private Sub createFile()
Dim path As String = "D:\SomeFile.txt"
For i As Integer = 0 To 1000
SyncLock _lock
If File.Exists(path) Then File.Delete(path)
Using fs As New FileStream(path, FileMode.CreateNew)
End Using
End SyncLock
Next
End Sub
End …Run Code Online (Sandbox Code Playgroud) vb.net ×3
.net ×2
file-access ×1
filestream ×1
foreign-keys ×1
gac ×1
mshtml ×1
mysql ×1
npgsql ×1
shdocvw ×1