如果之前有人问过,请原谅我; 我做了一个搜索,但找不到任何具体回答这个问题,但我很乐意被推荐.
我正在看一下Entity Framework和LINQ to SQL,虽然我喜欢这些系统(当然还有LINQ集成)但我对数据绑定方面有点怀疑.我已经采取了查询结果,并检查他们,他们似乎并没有执行标准的.NET列表绑定接口(IBindingList
以及更重要的ITypedList
),导致我相信,他们结合到网格(或其他任何东西)是怎么回事使用反射来获取/设置我的实体属性.这似乎是一个相对昂贵的操作,特别是当所有代码都生成并且可以实现接口时.
有没有人对此有任何见解?反射用于获取/设置属性的值吗?如果是,这是否会产生明显的性能影响,是否有人知道他们为什么选择这条路线?
编辑
我实际上专注于是否在ITypedList
某个地方实现,因为这是有能力提供一种显式机制来定义和与属性交互而不需要求助于反射.虽然我没有LINQ to SQL项目,但我确实检查了一个简单的Entity Framework实体查询结果,但它似乎没有实现ITypedList
.有谁知道我是不是只是看错了,或者如果不是为什么会这样?
编辑2
在接受了Marc的回答之后,我认为如果我发布了一些我用来无缝实现其解决方案的简单代码,那么对其他人可能会有所帮助.我将以下内容放在我的类的静态构造函数中:
public static ContextName()
{
foreach(Type type in System.Reflection.Assembly.GetExecutingAssembly()
.GetTypes())
{
if (type.GetCustomAttributes(typeof(System.Data.Linq.Mapping
.TableAttribute), true) != null)
{
System.ComponentModel.TypeDescriptor.AddProvider(
new Hyper.ComponentModel.HyperTypeDescriptionProvider(
System.ComponentModel.TypeDescriptor.GetProvider(
type)),
type);
}
}
}
Run Code Online (Sandbox Code Playgroud)
虽然这是针对LINQ to SQL的,但我确信可以为Entity Framework编写等效版本.这将扫描程序集中包含该Table
属性的任何类型,并为每个类型添加自定义提供程序.
有没有人知道一个好的类来读取.ged文件
Gedcom是一种用于存储宗谱信息的文件格式.
我的目标是写一些东西,让我导入一个ged文件并导出.vot文件的graphviz,这样我就可以直观地表示一个家谱
谢谢,如果你能提供帮助
背景
我正在撰写一份面向大量观众的调查.它包含15个问题,每个问题有五个可能的答案以及潜在的评论.
用户可以循环查看以任何顺序回答它们的所有15个问题,并且可以随时离开调查并返回以回答剩余的问题.
一旦在所有15个问题上尝试了答案,就会出现一个提交按钮,允许他们将问题作为最终答案提交.在该阶段之前,只要用户加载调查页面,就需要检索所有答案.
要求是用户只能在页面上看到一个问题,"上一个"和"下一个"按钮允许用户滚动查看问题.
要求
我可以在每次用户单击按钮并保存当前响应等时请求问题,但这将是对已经大量使用的数据库的大量命中.我没有时间购买新的服务器等,所以我必须用我所拥有的.有什么办法可以在用户机器和/或响应上缓存问题吗?显然,我需要响应数据是安全的,并且只有用户知道,所以我觉得有点卡住了最好的方法.有什么指针吗?
如果这意味着我会得到一些高质量的讨论和反馈,我准备在这个问题上提供100分的赏金.
编辑:我不确定我原来的问题是否足够明确.我需要一种算法来计算最小的移动顺序,以便将数组从一个顺序重新排列到另一个顺序.众所周知,两个数组都包含相同的元素(没有重复)并且具有相同的长度.例如:
reorder(
['d', 'a', 'c', 'b', 'e'],
['a', 'b', 'c', 'd', 'e']
)
Run Code Online (Sandbox Code Playgroud)
应该返回类似的东西:
[
{move:'d', after:'b'},
{move:'c', after:'b'}
]
Run Code Online (Sandbox Code Playgroud)
这表明我应该首先将元素'd'移动到'b'之后,然后将'c'移动到'b'之后,数组将按所需顺序移动.
背景:我正在研究一个项目(实际上将rtgui中的大部分功能转移到客户端).现在我正在进行排序.基本上我有一个div列表,我想按任意顺序排序.我可以按如下方式获得所需的订单:
var hashes = {
before: [],
after: [],
};
var els = $('div.interesting-class').toArray();
var len = els.length;
for(var i = 0; i < len; i++) hashes.before.push(els[i].id);
els.sort(getSortComparator());
for(var i = 0; i < len; i++) hashes.after.push(els[i].id);
Run Code Online (Sandbox Code Playgroud)
现在hashes.before
,hashes.after
包含无序和有序的元素ID列表.重新排序列表时,到目前为止,最昂贵的操作实际上是移动DOM元素.我这样做的情况如下:
var c = $('#container-id');
$(els).each(function() {
c.append(this);
});
Run Code Online (Sandbox Code Playgroud)
这可行,但速度比必要慢,因为平均来说,实际上只需要移动2或3个元素.因此,我需要一种算法来计算最小的移动顺序,以便将数组从一个顺序重新排列到另一个顺序(在这种情况下,操作hashes.before …
我有一个字符串,我想基于一个int变量在该字符串的开头添加一些空格.
我想做这样的事情:
int NumberOfTabs = 2;
string line = "my line";
string line = String.Format("{0}{1}", " " * NumberOfTabs, line);
Run Code Online (Sandbox Code Playgroud)
...现在行将有8个空格
最简单的方法是什么?
我对ReportViewer组件有一个停止显示的问题,它是SSRS的一部分.我正在开发一个WinForms应用程序,并有几个本地报告显示DateTime
来自不同位置的数据库的值.不管格式是怎么做的(任何排版,在使用"d" Format
的财产,或使用FormatDateTime
与任何的DateFormat枚举值),它总是出现在日期时间与EN-US区域性格式,而不是系统日期和数字格式化文化.
我已经验证了这CurrentCulture
是预期的.报告语言设置为"默认".该Language
标记甚至不存在于.rdlc文件中.如果我更改报告语言,则无论系统文化如何,它都会反映该文化的格式.
有没有办法使用当前系统文化呈现报表,或者根据文化以编程方式修改报表的语言?
我有Windows应用程序(.EXE文件是用C编写的,用MS-Visual Studio构建),它将ASCII文本输出到stdout.我希望增强ASCII文本以包含有限的HTML和一些链接.我想调用此应用程序(.EXE文件)并获取该应用程序的输出并将其传递到浏览器中.这不是一次性的事情,每个新的网页都是本地应用程序的另一个运行!
下面的HTML/java脚本应用程序可以帮我执行应用程序,但是输出已进入DOS Box窗口,而不是将其输入浏览器.我想更新此HTML应用程序,以使浏览器能够捕获该文本(使用HTML增强)并使用浏览器显示它.
<body>
<script>
function go() {
w = new ActiveXObject("WScript.Shell");
w.run('C:/DL/Browser/mk_html.exe');
return true;
}
</script>
<form>
Run My Application (Window with explorer only)
<input type="button" value="Go"
onClick="return go()">
</FORM>
</body>
Run Code Online (Sandbox Code Playgroud) 我的公司有一个现有的软件产品,其中包括一个Web服务/移动网站组件,该组件目前作为IIS中的应用程序存在.由于此应用程序由每个单独的客户端托管(我们目前不提供集中托管,可能不会在可预见的未来),这意味着每个客户的服务器必须安装和配置IIS才能使我们的服务正常工作.
我们正在完成重写应用程序的过程,我正在调查删除IIS要求的可能性.我们的应用程序运行的各种环境(从运行XP Pro的工作站到2008 R2上的服务器),管理几个不同版本的IIS已成为支持头痛的问题.我们想做类似于SQL Server Reporting Services在2008年所做的事情,其中功能看起来是相同的,并且站点可以与IIS站点合作,但IIS不是必需的,也不是作为安装程序的一部分安装的.
我们的新应用程序使用WCF通过Web服务进行通信,并且可以轻松地自托管WCF服务.它似乎是挂起的Web应用程序(即为浏览器提供HTML).有一件事是不可协商的,我们需要能够将Visual Studio中的站点作为普通的ASP.NET Web应用程序(Webforms或MVC)进行开发,但我们希望在我们的服务中托管它们.
我看过IIS Express和IIS Hostable Web Core,但似乎都不适合我们正在寻找的东西; IIS Express是需要自己的安装程序的外部产品,Hostable Web Core需要安装IIS.
有什么东西可以让我们在Windows服务中嵌入一个功能齐全的ASP.NET兼容的Web服务器吗?
我正在使用NetTcpBinding编写双工WCF服务,我遇到了一个架构问题,我想我知道答案,但希望我错了.
我们的服务是有状态的,我们选择了NetTcpBinding PerSession
InstanceContextMode
.由于各种原因,这是我们需要的.我正在尝试将我们更大的接口(其中大块操作不适用于许多客户端)分解为多个较小的接口,并将操作逻辑分组.虽然简单到足以让单个服务实现实现所有合同,但我不确定是否可以让多个服务合同共享一个通道(或者,更符合我的要求,单个会话),而且我会肯定需要能够做到这一点,以使这项工作.
当然,我可以在一个合同中包含所有内容,并FaultException
在执行无效操作时抛出s,但我真的希望能够打破这些并且甚至不为不适用的合同添加端点.我正在寻找什么?
TL; DR版本:
我需要能够做到这一点:
[ServiceContract]
public interface IServiceA
{
[OperationContract]
void Foo();
}
[ServiceContract]
public interface IServiceB
{
[OperationContract]
void Bar();
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class Service : IServiceA, IServiceB
{
...
}
Run Code Online (Sandbox Code Playgroud)
并且能够建立从客户端到服务的一个会话,但同时使用IServiceA
和IServiceB
.
我正在处理驻留在域的子目录中的Web应用程序,并且我试图辨别将正确的URL插入img
标记的最惯用的方式.虽然以下两者在客户端计算机上生成相同的HTML,但我不确定哪个更"正确"
<img src="~/Content/images/blah.png" />
<img src="@Url.Content("~/Content/images/blah.png")
这两者都产生了绝对的路径/subfolder/Content/images/blah.png
,所以两者都有效,但我很好奇哪一个是正确的做法.
这两种方法之间是否存在差异(例如,一种方法是通过与另一种方法不同的机制解决的?),还是前者只是后者的语法糖?
asp.net ×3
c# ×3
javascript ×2
algorithm ×1
asp.net-mvc ×1
diff ×1
gedcom ×1
genealogy ×1
iis ×1
iis-express ×1
jquery ×1
linq-to-sql ×1
localization ×1
reflection ×1
sql-server ×1
vb.net ×1
wcf ×1
wcf-sessions ×1
windows ×1
winforms ×1