是否有推荐的方法来模拟F#中的多个继承级别,可能是使用区分联合?
在C#中使用以下内容:
class Expr { }
class SourceExpr : Expr { }
class JoinExpr : SourceExpr { }
class TableExpr : SourceExpr { }
Run Code Online (Sandbox Code Playgroud)
我在F#中做到了这一点:
type SourceExpr =
| Join of JoinExpr
| Table of TableExpr
type Expr =
| Source of SourceExpr
| ...
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?这是否提供与继承相同的多态行为?
我正在为之工作的公司正在寻求将平台从ColdFusion 8/Windows切换到Ruby on Rails/Linux.我们的数据库解决方案将在Windows上保留为MSSQL 2008.我可能会分别跟进一系列有关此迁移的问题,但是现在我有一个MSSQL和Rails特定的问题.
早在2006年我第一次使用Ruby on Rails时,对MSSQL安装的支持非常不确定.事情大部分都有效,但ActiveRecord无法应对T-SQL缺少的某些功能.首先,我记得由于缺少像MySQL中那样的OFFSET关键字,自动分页无法正常工作.
我很好奇我们运行MSSQL 2008的主数据库服务器是否能够利用ActiveRecord的大部分功能.如果有特定功能不可用,我会很好奇它们是什么.
我正在使用SF 1.2.9来构建一个网站.我想使用管理生成器为我使用的对象模型(特别是LIST,编辑和删除)提供管理功能.
我已经阅读过Symfony文档(第14章),但除非我非常错误,所有我到目前为止所遇到的例子似乎都是针对单个用户环境编写的.这意味着返回给用户的记录列表基本上是该表中的所有记录.在多用户环境中,这是最不可能的,并且可能是安全威胁.必须要求将返回给用户的记录列表限制为他们拥有(即创建)的记录.
假设我有一个带有(YML)模式的表,如下所示:
foobar_dongle:
id: ~
title: varchar(255)
info: longvarchar
owner_id: ~
created_at: ~
Run Code Online (Sandbox Code Playgroud)
其中所有者ID是FK到用户表中.
假设我生成一个这样的管理模块:
symfony propel:generate-admin backend FoobarDongle --module=dongle
Run Code Online (Sandbox Code Playgroud)
问题: 如何修改管理生成器生成的代码的LIST部分中返回给用户的记录列表?正如我上面提到的,当前,(即开箱即用),管理生成器向用户(相当天真,我觉得)提供了正在管理的模型的整个记录集.我需要能够以某种方式限制该列表,以便我只能返回该用户拥有的记录.
这就是我想要了解的方法.
我非常感谢能够告诉我如何限制使用管理生成器管理对象模型时返回的记录列表的人.理想情况下,我希望能够指定一个具有所有自定义"过滤"逻辑的自定义方法 - 但只要我可以限制用户可以看到(在管理员中)的记录的LIST,只限制他所记录的记录这是我想要做的所有者.
我正在尝试使用JAXB将xml文件解组为对象,但遇到了一些困难.实际项目在xml文件中有几千行,所以我在较小的范围内重现了错误,如下所示:
XML文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<catalogue title="some catalogue title"
publisher="some publishing house"
xmlns="x-schema:TamsDataSchema.xml"/>
Run Code Online (Sandbox Code Playgroud)
用于生成JAXB类的XSD文件
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="catalogue" type="catalogueType"/>
<xsd:complexType name="catalogueType">
<xsd:sequence>
<xsd:element ref="journal" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="title" type="xsd:string"/>
<xsd:attribute name="publisher" type="xsd:string"/>
</xsd:complexType>
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)
代码段1:
final JAXBContext context = JAXBContext.newInstance(CatalogueType.class);
um = context.createUnmarshaller();
CatalogueType ct = (CatalogueType)um.unmarshal(new File("file output address"));
Run Code Online (Sandbox Code Playgroud)
哪个引发错误:
javax.xml.bind.UnmarshalException: unexpected element (uri:"x-schema:TamsDataSchema.xml", local:"catalogue"). Expected elements are <{}catalogue>
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:247)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:242)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1049)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown …Run Code Online (Sandbox Code Playgroud) 在使用msbuild进行编译时,.NET 3.5解决方案最终出现此警告.
有时NDepend可能有所帮助,但在这种情况下,它没有提供任何进一步的细节.像Bob一样,我最终不得不在ILDASM中打开每个程序集,直到找到引用旧版依赖程序集的程序集.
我确实尝试使用VS 2010 Beta 2中的MSBUILD(因为Connect文章表明这已经在下一版本的CLR中得到修复)但是它没有提供任何更多细节(可能在Beta 2后修复)
有更好的(更自动化的)方法吗?
我的.net应用程序中有几个配置文件,我想合并应用程序设置元素等.
我正准备像往常一样手动开始,但是我认为必须有一个XML diff GUI工具.
该工具将能够进入元素级别来比较和显示差异等.
然而,谷歌没有提供实质性的免费工具结果,也没有任何有价值的提示.
这样的工具可用吗?那非常有用吗?免费?
提前致谢.:)
编辑:
以下是对功能的一些澄清,这些功能可以将我容易出错,繁琐的手动作业转变为1分钟的简单任务(并且可以实现自动化):
在KDiff3中,您可以对整个目录进行差异/合并.有一个分层差异,非常准确,用户友好和清晰.我有兴趣找到一个类似的解决方案,而不是目录层次结构,XML元素层次结构.
如果没有这样的开源软件,我正在考虑在CodePlex上创建一个以提供此功能.
我使用mysql中的规范化邻接列表设计了加权图.现在我需要找到两个给定节点之间的最短路径.
我试图在PHP中使用Dijkstra但我无法实现它(对我来说太难了).我觉得另一个问题是,如果我使用Dijkstra,我需要考虑所有节点,这在大图中可能效率很低.那么有人有关于上述问题的代码吗?如果有人至少向我展示了解决这个问题的方法,那将会很棒.我已经被困在这里差不多一个星期了.请帮忙.
我有一个像'xxox-x'这样的字符串,我想屏蔽文件中的每一行,如下所示:
因此掩盖'xxox-x'对'deadbeef'会产生'xxaxbeex'
与'deadabbabeef'相同的面具'xxox-x'会产生'xxaxabbabeex'
我怎么能简洁地使用s运算符呢?