为此,我花了一天时间在Googeling上下; 到目前为止没有运气.
如何获取用户操作系统和版本.我的Mac OS X 10.6.4,办公室的备用PC将是Windows XP SP3.你看到我得到了什么.
我已经看到了一百万个方法来单独获取用户平台,而不是版本.
JS是理想的,但服务器端(PHP)解决方案也可以.
我在使用AutoMapper(这是一项出色的技术)时遇到了一个问题,即将业务对象映射到DTO,在DTO中我从集合中的抽象基类继承.
这是我的对象:
abstract class Payment
class CashPayment : Payment
class CreditCardPayment : Payment
Run Code Online (Sandbox Code Playgroud)
我还有一个发票对象,其中包含一系列付款,如下所示:
public class Invoice
{
... properties...
public ICollection<Payment> Payments { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我还有每个这些对象的相应DTO版本.
DtoInvoice对象定义为:
[DataContract]
public class DtoInvoice
{
...properties...
[DataMember]
public List<DtoPayment> Payments { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这就是我的Mapper定义:
Mapper.CreateMap<Invoice, DtoInvoice>();
Mapper.CreateMap<Payment, DtoPayment>()
.Include<CashPayment, DtoCashPayment>()
.Include<CreditCardPayment, DtoCreditCardPayment>();
Mapper.CreateMap<CashPayment, DtoCashPayment>();
Mapper.CreateMap<CreditCardPayment, DtoCreditCardPayment>();
Run Code Online (Sandbox Code Playgroud)
执行映射的代码如下所示:
var invoice = repo.GetInvoice(invoiceId);
var dtoInvoice = Mapper.Map<Invoice, DtoInvoice>(invoice);
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果我的发票对象包含特定付款的集合(比如1现金和1张信用卡),当映射器尝试映射它们时,我会收到错误,即无法创建抽象类付款.如果我从Payment对象中删除了abstract关键字,那么代码可以工作,但我只收到Payment对象的集合,我没有得到他们的特定对象(现金和信用卡付款).
所以问题是:如何让AutoMapper映射特定的支付类型而不是基类?
更新
我做了一些挖掘,并认为我发现了一个问题,但我不确定如何使用AutoMapper解决这个问题.我认为这更像是EF的事情,而不是AutoMapper的错.:-)
在我的代码中,我使用延迟加载的Entity Framework 4代理POCO.
因此,当我尝试映射从EF返回的实体(代理POCO)时,它会获得如下滑稽的类型:
System.Data.Entity.DynamicProxies.CashPayment_86783D165755C316A2F58A4343EEC4842907C5539AF24F0E64AEF498B15105C2
Run Code Online (Sandbox Code Playgroud)
所以我的理论是,当AutoMapper尝试将CashPayment映射到DtoCashPayment并且传入的付款属于代理类型时,AutoMapper将其视为"不匹配",然后映射通用付款类型.但由于Payment是一个抽象类AutoMapper炸弹,其中包含"System.InvalidOperationException:无法创建抽象类的实例".例外.
所以问题是:我有没有办法使用AutoMapper将EF POCO代理对象映射到Dtos.
是否可以为MS Word创建插件或插件,允许选择一段文本,然后应用自定义"突出显示"功能.
我希望这一切都在MS Word中,而不是从另一个应用程序切割和过去.
如果可能的话,我可以在哪里找到关于如何做到这一点的方向的任何建议(使用C#)
假设我有:sample.c
int main (...) {
char str*;
get s through user input
test(str);
return 0;
}
void test (str) {
copy str to new file
change file permissions on new file
close file
}
Run Code Online (Sandbox Code Playgroud)
因为我的main()方法中没有线程,所以不存在竞争条件.真的吗?
我想编译我的C#代码.我正在用"......"解析一个字符串,
string[] parts = line.Split(new[] { '....' }, 2);
Run Code Online (Sandbox Code Playgroud)
然后我收到一个错误:
字符文字中的字符太多
这条线看起来像这样:
abc.... starting word in english
Run Code Online (Sandbox Code Playgroud)
我认为我需要转换....为=.一切都会好起来的.还有其他方法吗?
我正在使用Mozilla Rhino JavaScript模拟器.它允许我将Java方法添加到上下文中,然后将它们称为JavaScript函数.但除非我使用静态方法,否则我无法工作.
问题是这部分文档:
如果方法不是静态的,那么Java'this'值将对应于JavaScript'this'值.任何使用不具有正确Java类型的'this'值调用该函数的尝试都将导致错误.
显然,我的Java"this"值与JavaScript中的值不对应,我不知道如何使它们对应.最后,我想在Java中创建一个实例,并在全局范围内安装几个方法,因此我可以从Java初始化实例,但在我的脚本中使用它.
有没有人有一些示例代码?
我正在迭代一个包含大约1000个元素的匿名类型.
这里的问题是我的循环可能需要几乎3秒才能完成,而循环内部发生的时间不到1毫秒.有一千个元素,我认为循环必须在第二个内完成,而不是3.
有没有办法让它迭代更快?
// takes 1ms to complete
var x = tt.Where(p => p.Methods.Count() > 0 && p.PerWeek != this.Project.WorkDaysCount && !p.IsManual);
// takes almost 3 seconds to complete
foreach (var item in x)
{
// do stuff that takes < 1 ms
}
Run Code Online (Sandbox Code Playgroud) 我用一个简单的文本框编写了一个应用程序,试图从他们的打字习惯中识别用户(按键之间的间隔,持续时间键,按键之间的时间,即a-> s比某些用户的a-> v更快根据打字风格,其他人更短).它远非完美,但它确实正确地识别出中等大小的风格差异.
我希望将其用作安全监视器的一种形式 - 如果用户的键入样式不符合已识别的模式,请向中央服务器报告.
当然,测试它的下一步是开始捕捉"常规"打字习惯 - 即浏览时,在应用程序之间切换等.
我无法弄清楚怎么做是捕获所有应用程序的键盘输入(不包括登录/欢迎屏幕,备用桌面等 - 我没有理由解析它,并且可能没有足够的输入来分析)
免责声明:是的,我知道这非常接近于编写一个禁止使用的键盘记录器,但如果我想这样做,我会用C++编写一个键盘驱动程序 - 我相信它会更加简化,更容易混淆.一个笨重的.Net MSIL组件.我毫不怀疑我会抵挡"那是一个键盘记录器"的评论,但我已经碰壁了,需要问某个地方......
我不需要隐藏应用程序 - 但理想情况下能够在没有明确用户确认的情况下捕获输入(除了管理员安装) - 如果需要用户确认,我可以忍受(只是)如果可以是一次性的,我有办法监控和报告否认.
这在.Net中甚至可能吗?我能够找到的唯一例子是通过向每个看起来很笨重的键添加一个事件挂钩来操作,我认为这很容易出错. - 或 - 他们轮询键盘状态以确定按下的键.这对我来说没有好处,因为a)我需要精确的按键时间,所以关键的上/下事件是必须的,而b)这是令人讨厌的.
如果框架旨在明确禁止这种情况,我不会感到惊讶,在这种情况下,我将不得不回退到一些非托管代码来提供事件.我显然更喜欢一直使用托管代码.
任何帮助赞赏.
编辑:感谢Hans Passant的回答,这是迄今为止我发现的最好的资源:http://www.codeguru.com/columns/vb/article.php/c4831
php ×3
.net ×2
c# ×2
javascript ×2
asp.net ×1
automapper ×1
c ×1
collections ×1
email ×1
html-email ×1
java ×1
keyboard ×1
keylistener ×1
keylogger ×1
linq ×1
method-call ×1
ms-office ×1
ms-word ×1
optimization ×1
os-detection ×1
parsing ×1
poco ×1
regex ×1
rhino ×1
vb.net ×1