在.net中是否有ACL抽象层?我看过一些"最佳实践"文档,但没有很好的基础实现.那么System.Security.AccessControl呢?这是一个很好的起点吗?
ACL应该与存储在DB中的角色以及系统中的角色以及内存中对象定义以及数据库对象或文件一起使用.所以它应该是通用的和/或易于扩展.
这应该依赖于.net框架中的IPrincipal,IIdentity吗?
Zend在他们的PHP框架中有类似的东西,我正在为C#搜索这种东西,而不是移植它(如果已经有标准的解决方案或最佳实践实现).
@ladislav:
它不适用于Web服务,胖客户端或独立应用程序.因此,我正在搜索一个抽象层,可以通过适配器为特定的后端/平台进行扩展.你是对的,我正在为不同类型的对象和正确的定义搜索类似于基于角色的访问管理抽象层.这不应该依赖于您为文件系统中的文件夹设置的ACL.文件系统应该是ACL实现使用的特殊适配器.对我来说,ACL本身就是一个概念,与文件系统无关.文件系统使用ACL概念的实现(即使它在该领域中最为人所知).不希望硬依赖Win32-api.这就是为什么我要求通用(和广泛)使用的通用和抽象(接口)的东西.你知道zend框架中的实现(我知道它是PHP,但这个概念适用于任何应用程序,而不仅仅是基于Web的)?它是抽象的,可以用于代码中的任何对象
为Debug/Release定义目标输出文件夹的最佳做法是:为Debug/Release设置单独的文件夹是否更好?或者我是否应该为两者使用相同的文件夹(使用.NET/C#时)?
我有两个独立的解决方案,因此一个解决方案的项目不能通过项目引用另一个解决方案的项目.因此,您不得不直接添加对程序集文件的引用.这导致另一个问题:如果通过文件添加对另一个程序集的引用,则只能添加一个而不是一个用于调试和一个前发布(就像在C++中可以使用库一样).另一个问题是我必须添加一个引用,例如,bin/Release /MyOtherProject/MyAssembly.dll.我认为这很令人困惑,特别是在构建Debug并引用Release时.=>可能会发生构建错误和版本冲突.
有没有人在大型项目和环境中构建相同目标文件夹的长期经验?
这是一个与Stack Overflow问题相关的更精确的问题我们是否还应该在发布和调试输出文件夹之间做出改变?.
是否可以动态创建委托
arg => { return something; }
or arg => someting;
Run Code Online (Sandbox Code Playgroud)
使用内置的DelegateFactoryObject和Spring.Net提供的Spring Expressions?
我想创建没有编码的工厂.spring文档中的抽象示例需要一个抽象工厂,并通过动态配置实现工厂方法.我想通过Spring.Net定义委托和结果.
我已经使用了如下构造.
<object type="Spring.Objects.Factory.Config.DelegateFactoryObject">
<property name="DelegateType" value="System.Func<string,bool>" />
<property name="TargetObject" value="aString" />
<property name="MethodName" value="Equals" />
</object>
<object type="Spring.Objects.Factory.Config.DelegateFactoryObject">
<property name="DelegateType" value="System.Func<string,My.Interface>" />
<property name="TargetObject">
<object id="result" type="My.DelegateContainer<string,My.Interface>">
<constructor-arg name="objectToReturn" ref="theObjectToReturn" />
</object>
</property>
<property name="MethodName" value="Evaluate" />
</object>
Run Code Online (Sandbox Code Playgroud)
(输入字符串并输出My.Interface实现类型,传递ObjectToReturn)
...但我无法找到如何使用表达式来定义通过xml-config返回对象的函数的解决方案.我想在一个简单的配置定义工厂中替换此示例中的DelegateContainer,返回ObjectToReturn.
这个问题与这个问题有关:如何在Spring.net中注入Predicate和Func,你可以在那里找到关于这个问题的更多信息.
我用-C mysettings.cmake解雇cmake.
myfile.cmake的内容是
set(CMAKE_INSTALL_PREFIX "C:/install/mylib" STRING)
Run Code Online (Sandbox Code Playgroud)
一切都生成但似乎没有设置-C mysettings.cmake变量.它仍然安装在默认目录中.
Cmake打印消息"加载初始缓存文件../../script/cmake/mysettings.cmake"没有任何错误.
完整的电话:
cmake -C ../../script/cmake/mysettings.cmake -G "Visual Studio 9 2008" ../../source/mylib
Run Code Online (Sandbox Code Playgroud)
我的语法有问题吗?
是否可以通过接口/类(通过构造函数和属性注入)将事件连接到具有Autofac的方法而不是整个对象.我想绑定在功能级别而不是类型级别.以编程方式我希望完成以下工作(在C#中):
someType.Output += someOtherType.Input;
Run Code Online (Sandbox Code Playgroud)
例如,Spring.net支持以下构造来实现:
<object id="SomeType" type="Whatever.SomeType, Whatever" />
<object id="SomeOtherType" type="Whatever.SomeOtherType, Whatever">
<listener event="Output" method="Input">
<ref object="SomeType" />
</listener>
</object>
Run Code Online (Sandbox Code Playgroud)
Autofac能够做到这一点吗?是否可以将xml配置用于此类任务?
我在开发人员电脑上安装了 Postgres 9.6,但恢复似乎失败了。即使在重新安装(完全删除 Postgres 和 PgAdmin,包括数据库并安装新版本)之后,这些框还是会弹出(即使这些表已经不存在了)。如何删除这些预定的作业?是否有 SQL 语句来阻止这些?
有没有人知道一个好的模式匹配/识别库在C++(oss首选)能够检测向量列表是箭头还是其他类?
我已经知道OpenCV,但这是用于光栅图形(或者我错过了什么?)...但我已经有了矢量几何,将它们转换回光栅图形听起来很奇怪,你必须检测到它边缘再次.
所以我需要的是一个库,它使用矢量列表作为输入而不是光栅图形,并且可以识别矢量是否是箭头(独立于方向)并提取箭头的部分(头部/尖端/尾部等). ).
谁知道这样的lib或者有提示在哪里寻找这种问题(算法等)?
我尝试改变UI的使用方式.我已经尝试过量角器算法并将识别步骤分成不同的部分,例如箭头示例:
但我想在所有矢量线(无论顺序和方向)的一个步骤中完成此操作.有什么建议吗?
如果第一个是具有角度的折线并且还有对插入符号的识别但后续符号系统需要在它们之间做出决定呢?
我想绘制命令,而不是在负担很重的菜单中搜索它们.但重要的是检测图形的部分(例如中心线,左线,......)并尽可能保持纵横比(尺寸),这意味着也应保持关键坐标(例如箭头).这对于用校正的标准图形替换手绘矢量很重要.
这是否可以将lib作为单个任务,或者我应该保持当前分别识别每条折线并查看输入顺序的概念(例如,第一行必须是方向)?
你可以在这里看到一个想法:http://depts.washington.edu/aimgroup/proj/dollar/ 有1美元的识别器算法和一些派生的算法,你可以在网上试试.
问题是,我的"命令"由多行组成,并且每行在上下文中可能具有不同的特殊含义以获得完整的图形.我已经知道的算法和库(如上面的$ 1识别器)与单个手势更相关,而不是多个手势输入的复杂顺序,如果将其解释为整个草图,则获得精确的含义.
我认为继续单独解释每一行而不是将其置于整个背景中(认识整个草图)可能导致死路一条.但也许混合方法可能会得到它.
现实生活中的比较:就像有人画马一样.如果他刚刚开始绘制第一条线,你就不会说这是一匹马 - 你需要更多的输入,例如4条腿等.
(嗯,我知道不是每个人都画画好,有些马看起来像牛......但无论如何,这应该让你知道我的意思.)
任何提示?
更新:我在这里发现了一个接近问题的视频.缺失的链接是在识别之后如何访问结构的部分,但这也可以在单独的步骤中完成(在知道图纸显示之后).
我有一个简单的测试应用程序,它显示了一个带有附加行为的简单 Mahapps MetroWindow。问题是在附加行为时,绘制了 Mahapps MetroWindow 的外边框。

<controls:MetroWindow x:Class="Desktop.Shell.Modern.ShellView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:cal="http://www.caliburnproject.org"
xmlns:modern="clr-namespace:Desktop.Shell.Modern"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
Height="350"
Width="525"
ResizeMode="CanResizeWithGrip"
WindowTransitionsEnabled="True"
ShowIconOnTitleBar="False"
TitleCaps="False"
GlowBrush="{DynamicResource WindowTitleColorBrush}" >
<i:Interaction.Behaviors>
<modern:SomeBehavior SomeKey="{Binding Key}" />
</i:Interaction.Behaviors>
<ContentControl cal:View.Model="{Binding ActiveItem}" />
</controls:MetroWindow>
Run Code Online (Sandbox Code Playgroud)
删除行为时,一切看起来都如预期:

...但行为本身(还)什么也没做。以下是 SomeBehaviour 类的代码:
public sealed class SomeBehavior : Behavior<Window>
{
public static readonly DependencyProperty SomeKeyProperty =
DependencyProperty.Register(
"SomeKey",
typeof(Key),
typeof(SomeBehavior),
new PropertyMetadata(default(Key)));
public Key SomeKey
{
get
{
return (Key)this.GetValue(SomeKeyProperty);
}
set
{
this.SetValue(SomeKeyProperty, value);
}
}
protected override void OnAttached()
{
base.OnAttached();
}
protected …Run Code Online (Sandbox Code Playgroud) 我玩弄了一下与Greg Young的示例应用程序,并在多threadded环境的消息在总线上的顺序可能无法保证或第二天到达之前可能无法完成事件的处理时的问题绊倒了.
因此,ItemCreated消息可能发生在ItemChangedSomething消息之后,或者至少第一条消息未完全处理.这导致"读取侧"出现问题,因为我想更新尚未(尚)可用的数据.
如何解决这个问题?(假设CQRS适合域设计案例.)
我是否必须创建一个Saga或者还有其他方法吗?
我已将不可变类型存储在临时 CQRS 读取存储中(查询/读取端,实际上是通过带有抽象访问层的简单列表实现的,此时我不想使用完整的文档数据库)。这些阅读商店包含如下项目:
public class SomeItem
{
private readonly string name;
private readonly string description;
public SomeItem(string name, string description)
{
this.name = name;
this.description = description;
}
public string Name
{
get { return this.name; }
}
public string Description
{
get { return this.description; }
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想更改名称并在第二个命令中更改描述。这些更改应保持当前状态,这意味着对于上面的示例:
// initial state
var someItem = new SomeItem("name", "description");
// update name -> newName
someItem = new SomeItem("newName", someItem.Description);
// update description -> newDescription
someItem = new SomeItem(someItem.Name, "newDescription");
Run Code Online (Sandbox Code Playgroud)
如果您有多个属性,这对我来说确实容易出错……您必须设法保持当前状态。我可以向每种类型添加类似 …
c# ×6
.net ×3
build ×2
spring.net ×2
abstraction ×1
acl ×1
autofac ×1
c++ ×1
clone ×1
cmake ×1
cqrs ×1
delegates ×1
icloneable ×1
immutability ×1
interface ×1
lambda ×1
pgadmin-4 ×1
postgresql ×1
sql ×1
wpf ×1