winforms应用程序中关于EF的信息并不多。在他的 msdn 页面上,我们发现:
使用 Windows Presentation Foundation (WPF) 或 Windows 窗体时,请为每个窗体使用一个上下文实例。这使您可以使用上下文提供的更改跟踪功能。
所以我认为我不应该使用:
using (var context = new MyAppContext())
{
// Perform operations
}
Run Code Online (Sandbox Code Playgroud)
但我应该在每个MyAppContext
表单的加载时创建一个新的,并在表单关闭时(也可以选择之前)释放它。SaveChange()
这是对的吗 ?
如果是,我如何在运行时更改整个应用程序的数据库?
我需要使用rapidjson稀疏这种类型的json:
{
"errors":{},
"id":2326625,
"source_code":"GOOG",
"data":
[
["2010-01-12",-0.010565362832445,-0.010432881793793,-0.010144243731464,-0.017685262281432,-0.3275071624503],
["2010-01-13",-0.036084889870791,-0.016333087890756,-0.024003268530183,-0.0057299789787753,0.33911818660036],
["2010-01-14",0.012849006806501,0.0098673018033346,0.015523616828298,0.0047058823529412,-0.34735779281787],
["2010-01-15",0.013166015223205,-0.0010781671159029,-0.0081756037236783,-0.016698910497913,0.28200124010685]
]
}
Run Code Online (Sandbox Code Playgroud)
要获得id"source_code"的值非常简单:
d.Parse<0>(json);
printf("source_code" = %s\n", document["source_code"].GetString());
但是我无法成功检索数据值.例如,我希望能够检索"2010-01-12"和"-0.010565362832445"(数据中第一个数组的第一个值).
你有什么主意吗 ?
我不知道如何使用Visual Studio 2015调试COM ATL C ++进程外exe服务器。
对于COM ATL DLL没问题,当我调用COM dll时会自动触发断点。但是,当我尝试调试EXE服务器时,调试器没有中断。确实,仅在需要时才加载exe服务器,并且在客户端启动时不加载exe服务器的调试符号。
我的客户端(称为COM服务器)是Excel VBA(我已经通过工具/参考在VBA编辑器中将对com exe的引用添加到了该文件中)。要对其进行调试,我在Visual Studio Debug命令中将路径设置为Excel.exe,并作为参数将路径设置为xlsm文件。然后,我只是调用在Excel中调用VBA代码。它适用于com DLL,但不适用于COM Exe。我还尝试通过将VS附加到Excel上,但没有成功。
我已经找到了这篇文章(Windows COM-如何调试COM服务器),这似乎是由提升/权限问题引起的,但是我尝试了建议的答案,但是没有用。
有谁能帮助我吗?
您如何调试进程外的com服务器?
是否有必要将调试器附加到使用EXE服务器的客户端(因此以我为例)?
似乎没有64位版本的tlbinf32.dll
,这个(旧的)COM DLL用于提取COM组件的信息。(请参阅此SO答案)
我需要从64位C#应用程序访问它。我没有设法将其托管到一个单独的代理流程中,但仍在获取异常 REGDB_E_CLASSNOTREG
。我的代码适用于x86平台,但我也必须实现64位。
任何人都可以通过提供逐步过程以将其启动到代理(Dllhost
)或另一种使用它的方式来帮助我吗?
您知道浏览本机COM Dll的所有方法,类..的更好的选择吗?
我想从VBA调用我的一个用户定义函数.
我的用户定义函数在C++中声明:
XLOPER12*WINAPI HelloWorld()noexcept{
THROWS();
static XLOPER12 res=[](){
static std::array<wchar_t,13>str={
11,'H','e','l','l','o',' ','W','o','r','l','d','\0'};
XLOPER12 tmp;
tmp.xltype=xltypeStr;
tmp.val.str=str.data();
return tmp;}();
return &res;}
Run Code Online (Sandbox Code Playgroud)
这是来自该字段的实际函数的简化版本,可以返回String或double或偶数数组.当然这里我只返回一个String,但是这限制了我的UDF的返回类型LPXLOPER12
.
我可以成功注册我的函数xlfRegister
指定pxTypeText
的"U$"
.然后我可以从Excel调用我的UDF:
=HelloWorld()
Run Code Online (Sandbox Code Playgroud)
它的工作原理!
如果我尝试按照此处的建议从VBA调用我的函数:
Sub macro_test()
Dim hw As Variant
hw = Application.Run("D:\Path\MyAddIn.xll!HelloWorld")
End Sub
Run Code Online (Sandbox Code Playgroud)
我从Application.run收到一条错误消息:
运行时错误'1004':应用程序定义的错误或对象定义的错误
如果我尝试按照此处的建议从VBA调用我的函数:
Private Declare PtrSafe Function HelloWorld Lib "C:\Path\MyAddIn.xll" () As Variant
Sub macro_test()
Dim hw As Variant
hw = HelloWorld()
End Sub
Run Code Online (Sandbox Code Playgroud)
我得到一个空结果而不是"Hello World"
.
我究竟做错了什么 ?
杂项信息: …
我需要在我的C#解决方案中查找作为字符串文字一部分的单词的所有出现。因此,我想将搜索范围限制为带引号的字符序列中的单词。
例如,如果我搜索的单词magic
,以下行应该不会出现在结果中:
string magic = "hello dad"
Run Code Online (Sandbox Code Playgroud)
,相反,应该找到以下行:
string test = "this is a magic line"
Run Code Online (Sandbox Code Playgroud)
你能帮我吗?