我正在编写一个应用程序,它接收用户数据并将其存储在本地以供日后使用.应用程序将经常启动和停止,我想在应用程序启动/结束时保存/加载数据.
如果我使用平面文件,那将是相当简单的,因为数据并不真正需要保护(它只会存储在这台PC上).我相信的选择因此是:
平面文件需要更多的维护工作(没有类似于XML的内置类),但是之前我没有使用过XML,而且对于这个相对简单的任务来说,SQL似乎有些过分.
还有其他值得探索的途径吗?如果没有,哪一个是最好的解决方案?
编辑:要为问题添加更多数据,基本上我唯一想存储的是一个看起来像这样的字典
Dictionary<string, List<Account>>
Run Code Online (Sandbox Code Playgroud)
其中Account是另一种自定义类型.
我会将dict序列化为xmlroot,然后将Account类型作为属性吗?
更新2:
所以可以序列化字典.使它变得复杂的是这个dict的值是泛型本身,它是Account类型的复杂数据结构的列表.每个帐户都相当简单,它只是一堆属性.
我的理解是,这里的目标是尝试最终得到:
<Username1>
<Account1>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account1>
</Username1>
<Username2>
<Account1>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account1>
<Account2>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account2>
</Username2>
Run Code Online (Sandbox Code Playgroud)
你可以看到heirachy是
从a获取这个布局Dictionary<Username, List<Account>>是棘手的一点,也是这个问题的本质.
这里有很多关于序列化的"如何"回应,这是我的错,因为我没有在早期更清楚,但现在我正在寻找一个明确的解决方案.
现代浏览器的一个更强大的功能是软件开发人员能够编写浏览器扩展以增强,修改和调整用户访问的页面.随着我们的生活越来越多地迁移到浏览器上,我们是否有可能将自己暴露在由安装恶意本质的浏览器扩展所造成的大量隐私和安全漏洞中?
我意识到如果作者没有尝试混淆行为,这些扩展的源代码是可提取的和可读的.但是,这种类型的审查的有效性受到浏览器的影响,该浏览器鼓励用户使其扩展更新.虽然扩展的1.0版本可能是无害的,但是用户浏览器可能会建议升级到1.1版,其可能包含可用于从受损浏览器的屏幕上抓取信息的恶意代码.
作为浏览器扩展的用户和开发者,开发人员的声誉是唯一能够向用户保证他们的浏览活动是安全的吗?是否有任何机制来帮助保护用户免受受损的浏览器扩展?
是否有任何最佳实践来开发扩展,以便用户确保他们安装和更新的代码本质上是良性的?
我有遗留系统的XML文档格式,我必须在将来的应用程序中支持.我希望能够在XML和C#对象之间序列化和反序列化XML,但是,使用xsd.exe生成的对象,C#序列化包括xmlns:xsi ...,xsi:... etc XML属性生成的文档的根元素.无论如何要禁用它,以便绝对没有XML属性节点被放在生成的XML中?XML文档应该只是元素.
我试图生成一个本地化的日期字符串strftime,我使用的占位符是%x.语言/语言环境是setlocale(LC_ALL, array('jp','japanese')),但两个语言环境都不可用,因此它生成了一个包含不正确字符的字符串.然后我安装了ja_JP.utf8语言环境并指定它作为数组中的第一个元素,并解决了我的日期格式问题.
我的问题是,我应该总是依赖于安装的语言环境吗?我知道如何在我有root权限的盒子上安装它们,但是如果我没有访问权限呢?
我相信Zend_Locale并且Zend_Translate根本不依赖,setlocale但不知何故在内部进行,这给我的印象是它对于企业级应用程序实际上是不可行的.
我知道我大概可以用Zend_Locale和Zend_Translate我的应用程序,但它也需要支持PHP4,至少再延长一年这就是为什么我不能完全依赖这些.
我正在开发一个具有严格安全和审计要求的Web应用程序(HIPPA的东西).因此,我们正在评估是否应该建立自己的自定义成员资格和角色提供商,或者是否有可以购买的商用组件.
如果您对第三方Asp.Net会员和角色提供商有任何经验(好的或坏的),请分享您的想法.
更新:我们已开始评估以下第三方组件:
Port Sight Secure Access:http: //www.portsight.com/Products.aspx? AliasPath = Products/Secure Access/Secure Access&CultureAlias = en-US
和Visual Guard:http: //www.visual-guard.com/
有人知道任何其他第三方组件或有这些经验吗?
我正在尝试使用C#中的Microsoft Point of Service SDK在Epson TM-T88IV M(并行端口)上打印中文字符.但是,它们在打印机上显示为问号.(?)
我的PosPrinter具有以下有效的CharacterSetList:255,437,850,852,858,860,863,865,866,936,998,999,1252
以下CapCharacterSet:汉字
代码页1252是默认的Windows代码页.936是简体中文的代码页.在这种情况下,我使用的是代码页936,但从未能在打印机上显示中文字符.
例:
string str = "????";
// open device as variable _ReceiptPrinter, claim it, mark it as enabled
_ReceiptPrinter.CharacterSet = 936;
_ReceiptPrinter.PrintNormal(PrinterStation.Receipt, str);
Run Code Online (Sandbox Code Playgroud)
这打印出所有中文字符替换为?的文本.
我不确定是否需要在打印前指定其他转义码(ESC R 15?)或者我的打印机在Epson OPOS(v2.50e)中配置错误.我尝试了很多东西,但没有任何效果.任何想法或代码示例?
注意:在自检中,打印机会打印中文字符.
我有一个表格,其中列有price和date,按升序排序.我需要从这里计算一个返回向量return = price ( i) / price ( i- 1).时间不是基于时间的,这意味着一个记录可以在9h34,下一个记录可以在9h35,然后是9h40等...
我找到了以下主题:SQL语法用于计算返回数据的结果,但在Oracle中我不能在子查询中使用order by,你能帮帮我吗?
流利的NHibernate不喜欢这样,抛出一个错误:
{"关联引用未映射的类:System.String"}
好的,我明白为什么这会导致问题 - 但最好的解决办法是什么?
我真的不希望它在单个字段中存储分隔符的字符串列表,如果我的列表包含许多字符串,这将变得很难看.
由于显而易见的原因,我也不太想要一个表'字符串'.
我想我可以通过将我的List<string>内部包裹在一个类中来解决这个问题,但这感觉有点重量级.我开始认为它是最好的解决方案.
让Fluent NHibernate处理这个问题的最佳方法是什么?
我完全希望这些值存储在另一个表中.我想也许我可能已经能够设置一些指示NHibernate的自动化约定'如果你看到class X包含的那个List<*some primitive type*>,那么继续并自动创建一个映射到这个集合的引用表.
将一个集合中的每个集合包装起来感觉有点沉重.如果这是最好的解决方案,那么就这样吧.
建议的方法是将c-style(不是c ++,只是普通的旧c).h文件中定义的一堆常量导入到python模块中,以便可以在python的项目中使用它.在项目中我们使用混合语言,在perl中我可以通过使用h2xs实用程序来生成.pm模块.
常量定义看起来像
#define FOO 1
enum {
BAR,
BAZ
};
Run Code Online (Sandbox Code Playgroud)
等等
还提出了C风格的评论,必须妥善处理.
xml ×3
c# ×2
.net ×1
asp.net ×1
automapping ×1
browser ×1
c ×1
data-storage ×1
epson ×1
localization ×1
malware ×1
nhibernate ×1
opos ×1
oracle ×1
php ×1
printing ×1
privacy ×1
python ×1
roleprovider ×1
security ×1
setlocale ×1
sql ×1
zend-locale ×1