我有一个.NET 4.0库,它使用Shell32和Folder.GetDetailsOf()从WTV文件中获取元数据.我已成功使用它与控制台和Windows窗体应用程序没有问题.但由于某种原因,从.NET 4.0 Windows服务调用组件时,启动Shell类的调用会导致COM错误.
库中失败的代码:
Shell32.Shell shell = new Shell();
错误:
无法将"System .__ ComObject"类型的COM对象强制转换为接口类型"Shell32.Shell".此操作失败,因为对IID为"{286E6F1B-7113-4355-9562-96B7E9D64C54}"的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE)) .
我阅读了我的公寓线程,COM Interops,动态,PIA等等,但是我找到的解决方案没有解决问题.它必须是来自另一个无法看到Interop的线程的调用.请帮忙 :)
好的,我不是数据库架构师,所以这个问题完全来自软件开发人员的观点.我目前正在努力获得一个简单的设置数据库,并想知道在SQL服务器中存储不同类型的最有效,最高效的方法是什么.例如,SettingA可以具有布尔值,整数,浮点数或字符串值.存储数据的最有效方法是什么,检索效率最高.
将所有类型存储在一个字符串的字段中,并让应用程序服务器将其转换为适当的值.
具有不同类型的不同字段,并让应用程序服务器查看哪个字段不为null并使用它(BooleanValue,StringValue,IntValue,FloatValue并且只有一个非null且具有值)
根据类型将设置规范化为不同的表,如果使用该类型,则仅向表中添加值.(四个表BooleanValues,StringValues,IntValues,FloatValues与Settings表的外键).然后,SP将返回具有记录的表.
性能绝对是我的第一关注点,但空间问题将紧随其后.