我一直在寻找各种处理双击的方法,然后作者对一些处理单击的代码进行了抨击.现在Silverlight 3中是否有一个标准,每个人都用它来处理单击和双击列表框?
我有一个类Order,我使用NHibernate将其保存到数据库中.Web应用程序中有一个文件夹,其中包含一个继承自Order的对象,出于我们的目的,我们可以将其称为CustomOrder.我使用CustomOrder将一些属性放在Order对象上以用于UI.实际上不必将属性保存到数据库中.
当我将CustomOrder类传递给只接受Order对象的泛型保存方法时,NHibernate抱怨:
未知的实体类:CustomOrder.
我不需要将自定义字段持久化到数据库,但我想保留这个继承结构.我是在考虑错误的术语还是做一些我不应该做的事情?
保存代码
public object Save(Order obj, object userID) {
Order o = (Order)obj;
ISession session = NHibernateHelper.GetCurrentSession();
ITransaction tx = session.BeginTransaction();
session.Save(o);
Run Code Online (Sandbox Code Playgroud)
在方法的第一行中的情况之后,.NET仍然将其标识为CustomerOrder.
我有一个C#应用程序,我正在尝试推送到分布式网络.应用程序在本地(一如既往)工作正常,但当我将其推送到网络时,它不起作用,因为它无法写入C:\ Windows\Temp目录.我实际上并没有调用任何写入该目录的代码,但我认为它是由我调用webservice引起的,给出以下异常:
无法生成临时类(result = 1).错误CS2001:找不到源文件'C:\ WINDOWS\TEMP\cyalinh1.0.cs'错误CS2008:未指定输入'.有关更多详细信息,请参阅InnerException.
有没有办法阻止.NET写入Temp目录?它是.config文件中的设置吗?
UPDATE
可以使用SGEN来阻止从Web服务创建那些动态创建的类吗?
是否有详细的演练,描述了在运行可执行文件时.NET级别发生的所有进程?像访问的文件夹,可能正在运行的进程,它们正在运行的对象等,是否发生在应用程序之外?
我有两个列表框,一个是主人,另一个是孩子.当索引在主服务器上更改时,子列表框将适当地填充与主服务器相关的记录.当一个主人需要很长时间才能获得所有记录并且在完成记录之前,用户点击一个花费更少时间填充的不同主人时,我的问题就出现了.最后,即使用户不在那个主人身上,那么花费更长时间的主人也会填充子列表框.
我一直在使用BackgroundWorker线程进行填充.
bw_LoadAll.DoWork += new DoWorkEventHandler(bg_LoadAllWork);
bw_LoadAll.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bg_LoadAllWorkCompleted);
bw_LoadAll.WorkerSupportsCancellation = true;
Run Code Online (Sandbox Code Playgroud)
我订阅了master的SelectedIndexChanged事件,并将取消的等于true设置为:
bw_LoadAll.CancelAsync();
Run Code Online (Sandbox Code Playgroud)
以下是DoWork方法中的代码:
List<object> s = Repository.Instance().LoadAll();
if (!bw_LoadAll.CancellationPending) {
e.Result = s;
} else {
e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,完成的工作人员的代码不断被调用.这是工人完成的代码:
if (!e.Cancelled) {
ddl.DataSource = e.Result;
ddl.DisplayMember = "QuickName";
ddl.ValueMember = "ID";
}
Run Code Online (Sandbox Code Playgroud)
还有什么我必须做的才能取消这个线程返回吗?
我有一个web服务,可以返回实体框架对象.在调用方面,除了读取信息之外我什么都不做,所以我不需要这些实体框架序列化属性.返回实体框架对象时是否可以删除以下序列化文本?
<EntityKey> <EntitySetName>ClassName</EntitySetName> <EntityContainerName>MyEntities</EntityContainerName> -<EntityKeyValues> -<EntityKeyMember> <Key>ClassID</Key> <Value xsi:type="xsd:int">9903</Value> </EntityKeyMember> </EntityKeyValues> </EntityKey>
Run Code Online (Sandbox Code Playgroud) 我有一个CSV文件,我添加到Visual Studio单元测试项目.它有七列,看起来像这样:
assessmentitemid,reviewer1,reviewer2,reviewer3,reviewer4,reviewer5,reviewer6
Run Code Online (Sandbox Code Playgroud)
我的测试方法如下所示:
[TestMethod]
[DeploymentItem("IntraclassCorrelationValues.csv")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\IntraclassCorrelationValues.csv", "IntraclassCorrelationValues#csv", Microsoft.VisualStudio.TestTools.UnitTesting.DataAccessMethod.Sequential)]
public void TestMethod1() {
object val = TestContext.DataRow["assessmentitemid"];
}
Run Code Online (Sandbox Code Playgroud)
访问列assessmentitemid时出现错误.我检查了表格,除了assessmentitemid以外,所有列都已正确映射.它的实际列名是这样的:
assessmentitemid
Run Code Online (Sandbox Code Playgroud)
我是否还需要对DataSource属性执行其他操作才能正确解析CSV文件?
我想我有一个非常简单的场景,但似乎无法掌握如何在.NET的MVC框架中做到这一点.最简单的是,这是一种具有排名的人.我想在一个页面上列出他们名字旁边的每个人的姓名和文本框.这是(Razor)Html的样子:
@using (Html.BeginForm()) {
<fieldset>
@foreach (var b in Model.Ballots) {
<p>
<label>@b.Person.FullName</label>
@Html.TextBox("Rank")
@Html.ValidationMessage("Rank")
</p>
}
</fieldset>
<input type="submit" value="Vote" />
Run Code Online (Sandbox Code Playgroud)
}
选票是一个简单的对象,有一个人和一个排名:
public class Ballot {
public Person Person { get; set; }
[Range(1, 6, ErrorMessage="The voting range is 1 through 6")]
public int Rank { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器处理表单提交的方法,但它永远不会被调用.
[AcceptVerbs("POST")]
public ActionResult Vote(IEnumerable<Ballot> ballots) {
return View("BallotComplete");
}
Run Code Online (Sandbox Code Playgroud)
如何迭代表单提交回服务器的所有模型?
我正在针对nHibernate应用程序在VS2008内部运行单元测试,并且希望在单元测试期间打开日志记录,这样我就可以看到更多的内容.我已经复制并粘贴了另一个应用程序的app.config,它成功地将nhibernate信息记录到单元测试app.config中,但仍然没有得到任何输出.
这是测试项目的app.config:
<log4net>
<appender name="NHibernateFileLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/nhibernate.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/general.txt" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/data.txt" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<rollingStyle value="Size" …Run Code Online (Sandbox Code Playgroud) 我有两个接口,IAuditable和ITransaction.
public interface IAuditable{
DateTime CreatedOn { get; }
string CreatedBy { get; }
}
public interface ITransaction : IAuditable {
double Amount{ get; }
}
Run Code Online (Sandbox Code Playgroud)
还有一个实现ITransaction的类,调用Transaction.
public class Transaction : ITransaction{
public DateTime CreatedOn { get { return DateTime.Now; } }
public string CreatedBy { get { return "aspnet"; } }
public double Amount { get { return 0; } }
}
Run Code Online (Sandbox Code Playgroud)
当我将ITransactions列表绑定到数据网格并使用自动创建列时,只有Amount被绑定.没有看到CreatedBy和CreatedOn.有没有办法在数据绑定期间可以看到这些值?
c# ×3
.net ×2
nhibernate ×2
unit-testing ×2
winforms ×2
asp.net ×1
csv ×1
data-binding ×1
double-click ×1
inheritance ×1
interface ×1
logging ×1
permissions ×1
persistence ×1
web-services ×1