小编dis*_*kid的帖子

注册comdlg32.dll获取Regsvr32:找不到DllRegisterServer入口点

我有Windows 7,64位.

我正在尝试使用regsvr32注册.dll(comdlg32.dll).但是我得到一个错误,表示读取了dll但找不到DLLRegistryServer入口点.

我已经在System32和SysWOW64下运行命令,并且我已经使用"以管理员身份运行"运行我的命令.

我的旧MSComDlg.CommonDialog组件不再使用64位.

windows dll regsvr32 common-dialog comdlg32

49
推荐指数
3
解决办法
50万
查看次数

从String反序列化XML

我正在尝试将我从Web服务获得的结果转换为字符串并将其转换为对象.

这是我从我的服务中得到的字符串:

<StatusDocumentItem><DataUrl/><LastUpdated>2013-01-31T15:28:13.2847259Z</LastUpdated><Message>The processing of this task has started</Message><State>1</State><StateName>Started</StateName></StatusDocumentItem>
Run Code Online (Sandbox Code Playgroud)

所以我有一个课程为:

[XmlRoot]
public class StatusDocumentItem
{
    [XmlElement]
    public string DataUrl;
    [XmlElement]
    public string LastUpdated;
    [XmlElement]
    public string Message;
    [XmlElement]
    public int State;
    [XmlElement]
    public string StateName;
}
Run Code Online (Sandbox Code Playgroud)

这就是我试图通过XMLDeserializer将该字符串作为StatusDocumentItem类型的对象(NB.operationXML包含字符串):

string operationXML = webRequest.getJSON(args[1], args[2], pollURL);
var serializer = new XmlSerializer(typeof(StatusDocumentItem));
StatusDocumentItem result;

using (TextReader reader = new StringReader(operationXML))
{
    result = (StatusDocumentItem)serializer.Deserialize(reader);
}

Console.WriteLine(result.Message);
Run Code Online (Sandbox Code Playgroud)

但我的结果对象总是空的.我究竟做错了什么?

更新.我从我的operationXML获得的值是这样的,并且有一个不必要的xmlns属性阻止了我的反序列化.没有这个属性,一切都很好.这是它的样子:

"<StatusDocumentItem xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><DataUrl/><LastUpdated>2013-02-01T12:35:29.9517061Z</LastUpdated><Message>Job put in queue</Message><State>0</State><StateName>Waiting to be processed</StateName></StatusDocumentItem>"
Run Code Online (Sandbox Code Playgroud)

.net c# xml xml-deserialization

28
推荐指数
2
解决办法
8万
查看次数

无法加载工具箱项.它将从工具箱中删除

我有一个WinForm申请.我也User Control为它创造了自己的.一切都很好.直到今天,当我尝试将其添加回我的程序时,我收到了错误消息(我从未将其删除.Visual Studio确实如此).

无法加载工具箱项#UserControlName.它将从工具箱中删除.

我在我的解决方案资源管理器中有它,但在此错误后它从我的工具箱中消失了.我也收到警告说:

'#UserControlName'永远不会被赋值,并且将始终具有其默认值null.

当我看到我的设计师代码时,这是真的.但我没有用我的设计师代码做任何事情.我的用户控件是在那里定义的,但没有实例化.我怎么能把它放回去?

它有什么关系,我改变了我的构建平台的事实x32x64?如果是这种情况,我会感到惊讶,因为该程序在更改后工作正常.

.net c# user-controls visual-studio winforms

18
推荐指数
5
解决办法
2万
查看次数

无法加载文件或程序集log4net

我已经添加log4net到我的项目中,它在我的机器上工作正常,但是当我将我的应用程序的发布版本发送给我的同事时,他收到了FileNotFoundException:

无法加载文件或程序集'log4net,Version = 1.2.13.0,Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a'

但奇怪的是,我app.config甚至没有使用上面版本的log4net:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="BizWizard.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
Run Code Online (Sandbox Code Playgroud)

.net c# log4net filenotfoundexception

12
推荐指数
2
解决办法
2万
查看次数

Process.Start()没有启动.exe文件(手动运行时有效)

我有一个.exe文件,我需要在创建文件后运行.文件已成功创建,之后我使用以下代码运行该.exe文件:

ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.FileName = pathToMyExe;
processInfo.ErrorDialog = true;
processInfo.UseShellExecute = false;
processInfo.RedirectStandardOutput = true;
processInfo.RedirectStandardError = true;                        
Process proc = Process.Start(processInfo);
Run Code Online (Sandbox Code Playgroud)

我也试过一个简单Process.Start(pathToMyExe);.exe文件没有运行.当我pathToMyExeWindows资源管理器上手动尝试时,程序正确运行.但不是通过该计划.我看到的是光标转向等待几秒然后恢复正常.所以也没有抛出异常.什么阻止文件?

c# explorer exe process.start

11
推荐指数
1
解决办法
2万
查看次数

MySQL 代码被误认为 MSSQL 并导致 Intellisense 语法错误

.sql我的 VS Code 工作区中的一个文件包含 MySQL 代码。即使我安装了两个插件(MySQLMySQL Syntax),我的 IDE 仍然使用 MSSQL 识别此文件并生成语法错误。

在此处输入图片说明

当然,这并不妨碍我运行我的程序,我总是可以将语法高亮设置为无。但我宁愿让 VS Code 识别我所有文件的语言。

mysql visual-studio-code

11
推荐指数
1
解决办法
3294
查看次数

创建一个ExpandoObjects列表,其中包含从数组中读取的属性

我正在尝试创建一个动态的对象列表,因为在我从文件中读取它们之前,我不知道我的对象将具有哪些属性.

所以假设我在数组中有我的对象的属性(例如FirstName,LastName,Email).

我想创建具有上述属性的名为Recipient的动态对象.然后我想创建一个列表并将其中一些对象添加到该列表中.

到目前为止,我已经完成了以下操作,但我不确定这是否是为动态对象分配属性的正确方法("fields"是数组的名称):

var persons = new List<dynamic>();
dynamic Recipient = new ExpandoObject() as IDictionary<string, Object>;
foreach (string property in fields)
{
   Recipient.property = string.Empty;
}
Run Code Online (Sandbox Code Playgroud)

如何使用上述属性创建收件人对象,然后将这些收件人添加到人员列表中?

.net c# dynamic expandoobject

10
推荐指数
1
解决办法
9085
查看次数

实体框架批量插入引发KeyNotFoundException错误

我正在使用EF6,由于AddRange()我需要使用的方法速度慢BulkInsert.所以我通过这里添加了用于EF6的BulkInsert的NuGet包.

添加dlls 后我收到的第一件事就是这个警告:

发现同一依赖程序集的不同版本之间存在冲突.请在项目文件中将"AutoGenerateBindingRedirects"属性设置为true.

我做了List我所有的Contact实体即contactsToInsert需要添加(我的联系人在另一个表的外键,太).当我尝试运行以下代码时,我收到一个KeyNotFoundException声称" 字典中没有给定密钥 ".

using (var db = new Entities(myConnectionString))
{
    db.BulkInsert(contactsToInsert);
    db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

NB.我在里面运行BulkInsert BackgroundWorker.难道这可能是通过判断问题的原因此修复程序

堆栈跟踪:

   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at EntityFramework.MappingAPI.Mappers.MapperBase.BindForeignKeys() in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappers\MapperBase.cs:line 603
   at EntityFramework.MappingAPI.Mappings.DbMapping..ctor(DbContext context) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Mappings\DbMapping.cs:line 101
   at EntityFramework.MappingAPI.EfMap.Get(DbContext context) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\EfMap.cs:line 60
   at EntityFramework.MappingAPI.Extensions.MappingApiExtensions.Db(DbContext ctx, Type type) in c:\dev\EntityFramework.MappingAPI\trunk\src\EntityFramework.MappingAPI\Extensions\MappingApiExtensions.cs:line 51
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework bulkinsert

10
推荐指数
1
解决办法
4370
查看次数

异步方法在Task中返回true或false

我知道async方法只能返回voidTask.我已经阅读了类似方法中的异常处理async方法.我是async编程新手,所以我正在寻找一个简单的解决方案.

我的async方法运行一个Sql查询.如果查询没问题,它应该用布尔值通知调用者true,否则通知a false.我的方法目前无效,所以我无从得知.

private async void RefreshContacts()
{
    Task refresh = Task.Run(() =>
    {
        try
        {
            // run the query
        }
        catch { }
    }
    );
    await refresh;           
}
Run Code Online (Sandbox Code Playgroud)

我只想改变async,Task以便在我的catch声明中,该方法将返回a false,否则为a true.

c# asynchronous async-await

9
推荐指数
2
解决办法
2万
查看次数

lower_case_table_names设置为2,Workbench仍然不允许使用小写数据库名称

我在我的Windows 7 64位上安装MySql Workbench 6.2MySql version 5.6.

我想在我的数据库名称和表名中使用大写字母.所以我需要将变量设置lower_case_table_names为2.当我查看我的选项文件的常规选项卡时,它看起来如下所示: 在此输入图像描述 单击"应用"将打开一个"无变化"对话框.无论如何,当我尝试使用大写字母创建数据库时,我收到警告:

服务器配置了lower_case_table_names = 1,它只允许模式和表名中的小写字符.

我感觉my.ini服务器上的文件与选项文件配置中提到的文件不同.当我尝试在我的my.ini文件中手动添加此变量时,我看到下面的文本:

# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
Run Code Online (Sandbox Code Playgroud)

这就是我几天来一直困在创建模式的过程中.

mysql mysql-workbench

8
推荐指数
2
解决办法
3万
查看次数