我正在创建一个MVC应用程序,它目前使用EditorFor来生成很多视图.整个视图基本上只是一个EditorForModel,它运行得很好.但是,我遇到了一个小问题,我似乎无法找到解决方案,并且重要的是它以我需要的方式工作,那就是在尝试渲染EditorFor一个接口时.绑定和类似的一切都得到了处理,但问题是EditorFor看到它是一个接口,默认为"对象"模板.我需要它来查看界面,看看它是否能找到具有该名称的模板,如果它不能,我需要它通过所有存在的接口来查看它是否与它们中的任何一个匹配.要更简单地解释一下这个例子:
接口:
public interface IAppProvider
{
string Name { get; set; }
}
public interface IAppMusicProvider : IAppProvider
{
int GetPlaylistCount();
} // Yeah, I know, this interface is not smart, but it's only for show.
Run Code Online (Sandbox Code Playgroud)
如果我现在用model ="IAppMusicProvider"创建一个View并运行Html.EditorForModel(),我需要它来找到"〜Views\Shared\EditorTemplates\IAppProvider.cshtml"-template.有什么简单的方法可以达到这个目的吗?
我最近开始在AppHarbor上创建一个项目,试试吧.我遇到了一个小问题.我创建了包含jQuery-templates的小文件,我将其命名为.tmpl-files并放在"〜/ Templates /"中.要获取我使用的其中一个文件的内容HttpRequest.Current.Server.MapPath(path);,并且File.Open,这一切只能在我的本地机器上完美运行,但是,在AppHarbor上,我得知该文件不存在.是否有解决方法使这项工作?我是否需要以某种方式标记文件,或者我可以在Web.config/project-settings中放置哪些内容可以使其工作?
这可能是一个快速简单的问题,但我仍然无法找到答案.
更少,有没有什么方法可以使用mixin(比如说.mixin(@a: 2, @b: 3) { /* css here */ })并且只为给定的参数提供值?我知道我可以用这个作为.mixin(5)这将是相同的.mixin(5, 3),但我可以这样做.mixin(@b: 5)?含义相同.mixin(2, 5)(但我不必知道使用默认值的a的值).
我刚开始使用C#4.0(RC)并提出了这个问题:
class Class1 { public Class1() { } }
class Class2 { public Class2(string param1) { } }
class Class3 { public Class3(string param1 = "default") { } }
Type[] types = new Type[] { typeof(Class1), typeof(Class2), typeof(Class3) };
// Problem starts here, main-method
for(int i = 0; i < types.Length; i++)
{
ConstructorInfo ctr = provider.GetConstructor(Type.EmptyTypes);
Console.WriteLine(ctr == null ? "null" : ctr.Name);
}
Run Code Online (Sandbox Code Playgroud)
注意,我从来没有尝试过这个实际的代码,但我刚刚看了VS2010中使用调试来执行GetConstructor的结果
这对于两个第一类(1和2)是完美的,第一个类打印Class1的无参数构造函数的实际ConstructorInfo对象的名称,第二个类打印为null.然而,问题出现在第三个问题上,因为我真正想要的是不知道它是否需要0个参数,但是我是否可以创建一个没有任何参数的类的实例.我怎么做?
我开发了一个Android应用程序,我想把它放在市场上.但是,我想将其拆分为两个单独的应用程序,一个免费(带广告),一个付费(逻辑上没有广告).我该怎么做呢?我不想知道添加广告(我已经管理过了),但是如何使用一个现有的android应用程序(eclipse-project)并将其拆分为两个而无需创建新项目并只复制粘贴每个文件逐个(或批量).那可能吗?
顺便说一句,我使用GIT进行SCM,所以我已经创建了两个独立的分支,一个主分支和一个免费分支,但我需要设置一些配置值,这使得市场将它们分成两个不同的应用程序.
此外,当用户"升级"时,是否可以将数据库从免费应用程序复制到付费应用程序?
好的,第一个; 这就是我做的:
它启动存储模拟器和计算模拟器并开始在运行时加载,然后我得到一个弹出窗口说调试器无法连接.

然后在一些googeling之后我建议尝试运行应用程序而不运行调试器以查看我是否可以访问该应用程序.当我这样做时,我得到这个:

所以我认为IIS没有访问某些文件/目录的权限.所以我去IIS并查找运行应用程序的应用程序池,它告诉我正在使用的身份是NetworkService,然后我给NetworkService提供了IIS为应用程序设置的整个文件夹的完全权限(这也发生了)成为项目目录的路径).我仍然得到同样的错误.现在我或多或少都没有想法,但是我尝试了最后一件事,也就是给同一个目录的IUSR完全权限,但这也没有帮助.
我该如何解决这个问题?我还没有尝试将我的项目实际启动到Azure,因为如果我甚至无法让它在开发中工作我看不太重要.任何和所有的帮助将不胜感激.
我@Html.RouteLink("Validate", "ValidateEmail", new { email = Model.Email, key = Model.Key })用来生成一个链接,我通过电子邮件发送给新注册的用户.当我尝试这个时,我发现,wops,它没有生成绝对的URL ...这意味着我有一个类似的链接<a href="/Membership/Validate/email.to%40you.com?key=someKey">Validate</a>.但是,当我在电子邮件中发送此链接时,它(原因)将无法正常工作,那么我该如何改进呢?有什么简单的解决
我的任务是将AutoCAD插件从VBA翻译成VB.NET,我现在有点卡住了.
我正在处理的命令创建一个新层(或者如果它已经存在则选择它作为活动层),然后执行2"-INSERT"命令给出用户选择的点和dwg文件.然后,将先前的活动层重置为活动层.
insert-command看起来像这样:
-INSERT
C:\path\to\file.dwg
<point.x>,<point.y>,<point.z>
<documentScale>
Run Code Online (Sandbox Code Playgroud)
注意:命令中的所有换行符都添加为vbCR(不vbCrLf).
我的问题是,如何在.NET中针对ObjectARX实现相同的结果?我无法使用,SendStringToExecute因为它是异步的(没有回调),所以换句话说,一旦完成执行,我就无法重置当前层.必须有一些方法在纯.NET代码中复制此功能,可能使用BlockTable,但我不知道如何.
我已经尝试过按照此处找到的文章:http://through-the-interface.typepad.com/through_the_interface/2006/08/import_blocks_f.html,但这根本没有对文档产生明显影响.我也尝试使用myDatabase.Insert(transform, otherDatabase, False)和命令提示符说已经存在的块,因此跳过,但我仍然没有看到任何变化.我不知道"-INSERT"命令在幕后实际上有多么神奇,但在.NET中复制它是否可行?或者它是否可以被称为普通方法(而不是发送给AutoCAD处理的文本命令)?
我的任务是编写一种计算密码哈希的新方法,以取代我们认为还不够安全的旧方法。不久前,我读了《Security Driven .NET》一书,其中我了解到重要的部分是使用具有可配置转数(而不是简单的散列)的算法,而在 .NET 中推荐的算法是叫PBKDF2用于密码处理。我还读到,作为对 ASP.NET 处理密码方式的改进,如果存储在数据库中的结果哈希通过使用 PBKDF2 创建主节点以加密方式绑定到用户(名称或 ID),那就太好了密钥,然后使用用户名(或 ID)使用 HKDF 创建派生密钥。但同样,这是我从一本我目前无法访问的书中读到的肤浅知识,所以我无法重新检查我的记忆是否正确。
另外,我之前没有使用过 .NET DerivedBytes API,所以我可能做错了。所以我的问题是:我在下面的代码中做对了吗?我是否正确使用了 API?这个实现是否“足够安全”?或者我做错了什么,完全消除了所有的安全性?
protected override byte[] ComputeHash(string user, string salt, string password)
{
var userBytes = user.ToBytes();
?
using (var pbkdf2 = new PBKDF2(MacFactories.HMACSHA512, password.ToBytes(), salt.ToBytes()))
{
var masterKey = pbkdf2.GetBytes(128);
using (var hkdf = new HKDF(MacFactories.HMACSHA512, masterKey, userBytes, userBytes))
{
return hkdf.GetBytes(64);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在用C#编写一个应用程序,我希望维护大量的开放套接字连接(tcp),并能够响应来自所有这些的数据.现在,正常的事情(afaik)将是在所有这些上调用BeginRead,但据我所知,BeginRead生成一个线程并坐下来等待该线程中的数据,并且我已经读过线程没有当使用大量的时候,它们的扩展性会很好.虽然我可能错了,如果是这样,请告诉我.
这可能听起来很愚蠢,但我想要的是能够尽可能多地保持开放的套接字连接(就像我的机器/操作系统允许的那样),同时仍然能够对来自其中任何一个的数据做出快速响应.可能,并尽可能少地使用系统资源.
我想到的是将它们全部放在某种列表中,然后在它们中循环运行一个线程检查新数据并对新数据进行操作(如果有的话),尽管我认为这样的循环最终会炸掉我的cpu(因为循环中没有任何东西阻塞).有没有办法(简单与否,我不介意进入一些更复杂的算法来解决这个问题),我能做到这一点吗?任何帮助,将不胜感激.
asp.net-mvc ×3
.net ×2
c# ×2
android ×1
appharbor ×1
azure ×1
c#-4.0 ×1
concurrency ×1
editorfor ×1
file-io ×1
google-play ×1
html-helper ×1
iis ×1
less ×1
objectarx ×1
pbkdf2 ×1
performance ×1
reflection ×1
routes ×1
sockets ×1
templates ×1
vb.net ×1
windows-7 ×1