小编Pow*_*iKi的帖子

DisplayNameAttribute的本地化

我正在寻找一种方法来本地化PropertyGrid中显示的属性名称.可以使用DisplayNameAttribute属性"覆盖"属性的名称.不幸的是,属性不能有非常量表达式.所以我不能使用强类型资源,例如:

class Foo
{
   [DisplayAttribute(Resources.MyPropertyNameLocalized)]  // do not compile
   string MyProperty {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我浏览了一下,发现了一些从DisplayNameAttribute继承的建议,以便能够使用资源.我最终会得到如下代码:

class Foo
{
   [MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed
   string MyProperty {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

但是我失去了强大的类型资源优势,这绝对不是一件好事.然后我遇到了DisplayNameResourceAttribute,这可能是我正在寻找的.但它应该在Microsoft.VisualStudio.Modeling.Design命名空间中,我找不到我应该为此命名空间添加的引用.

有人知道是否有更好的方法以一种好的方式实现DisplayName本地化?或者是否有使用Microsoft似乎用于Visual Studio的方法?

c# attributes localization visual-studio-2008

119
推荐指数
7
解决办法
8万
查看次数

PHPExcel和PhpSpreadsheet之间的主要区别是什么?

PHPOffice的项目中,有两个与电子表格文件格式相关的项目:

PHPExcel

PHPExcel是一个用纯PHP编写的库,它提供了一组类,允许您写入和读取不同的电子表格文件格式,如Excel(BIFF).xls,Excel 2007(OfficeOpenXML).xlsx,CSV,Libre/OpenOffice Calc .ods,Gnumeric,PDF,HTML,...这个项目是围绕微软的OpenXML标准和PHP构建的.

PhpSpreadsheets

PhpSpreadsheet是一个用纯PHP编写的库,它提供了一组类,允许您读取和写入不同的电子表格文件格式,如Excel和LibreOffice Calc.

它们之间的主要区别是什么?

php phpexcel phpoffice phpspreadsheet

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

仅以UTC格式存储Doctrine2 DateTime

有类似的问题,但我找不到任何与Doctrine2配置有关的问题,所以这里有......

我已经读过这个描述Doctrine2时区的页面,我只是想澄清一下,因为目前还不清楚如何实际使用它:http://doctrine-orm.readthedocs.org/en/latest/cookbook/working-与-datetime.html

我希望以UTC格式存储日期时间,以便每个用户可以根据其位置拥有关联的时区,但数据通常存储.

基本上,数据是商店的营业时间(例如,上午9点开放,下午6点关闭).商店将跟踪其时区,因此当商店中的人设置"开放"时间时,他们正在处理商店的时区,时间转换为UTC并存储在数据库中.接下来,当其他用户查看商店营业时间时,他们将在自己的时区或商店时区中看到营业时间.这应该没关系,因为我有UTC时间,所以我可以将它们转换为任何时区.

所以Doctrine文档显示了这个例子:

class UTCDateTimeType extends DateTimeType
{
// ...
}
Run Code Online (Sandbox Code Playgroud)

但它没有说明如何使用它.我是否必须将列声明为"UTCDateTime"而不是"DateTime"?这个类需要在哪里生活,以便Doctrine知道该类型存在?

timezone datetime doctrine-orm

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

复杂的Righty系统:ACL,RBAC还有什么?

我们目前正在开发一个项目管理软件.我们无法确定实施安全性的正确方法.我们已经查看了ACL和RBAC,并且已经非常确定我们至少需要两者的组合才能出于特定原因.但是有两个问题在这两个世界都没有很好的解决方案.让我解释:

假设您有以下实体:

  1. 用户,具有不同的角色,即
    • 项目负责人
    • 工人
    • 管理员
  2. 项目
  3. 分配用户
  4. 项目中的任务

现在应该表达以下规则:只允许具有角色工作者的用户查看与分配给他的项目相关的任务.

这导致仅允许用户查看整个列表中的一些任务.

我们将使用RBAC为Roles提供实际读取任务的权限.但由于涉及特定实体,因此不适用该条件.可以使用ACL,但我们担心保持ACL条目符合要求的噩梦(用户可以更改,角色可以更改,可以引入新任务,必须获得正确的条目,这同样复杂).

当然,在查看特定项目时可能会有特定的查询(WHERE project_id = 123),但这对"我所有当前任务的视图"没有帮助,基本上每个任务都可以考虑显示,但是必须检查ACL每一个人.

我如何确保诸如"获取当前用户可以看到的前25个任务"之类的内容,而无需从数据库加载所有任务,然后根据ACL进行过滤,即处理分页.

php security acl rbac zend-framework2

6
推荐指数
2
解决办法
2706
查看次数