我正在尝试从WCF中的服务方法返回一个复杂类型.我正在使用C#和.NET 4.这种复杂类型意味着不变(与.net字符串相同).此外,服务只返回它,并且从不接收它作为参数.
如果我尝试仅在属性上定义getter,则会出现运行时错误.我想这是因为没有setter导致序列化失败.不过,我认为这种类型应该是不变的.
例:
[DataContract]
class A
{
[DataMember]
int ReadOnlyProperty {get; private set;}
}
Run Code Online (Sandbox Code Playgroud)
由于序列化问题,服务无法加载.
有没有办法在WCF DataContract上创建只读属性?也许通过更换序列化器?如果是这样,怎么样?如果没有,你会对这个问题提出什么建议?
谢谢,
阿萨夫
我想我可能对Moq Callback方法的语法有点困惑.当我尝试做这样的事情时:
IFilter filter = new Filter();
List<IFoo> objects = new List<IFoo> { new Foo(), new Foo() };
IQueryable myFilteredFoos = null;
mockObject.Setup(m => m.GetByFilter(It.IsAny<IFilter>()))
.Callback( (IFilter filter) => myFilteredFoos = filter.FilterCollection(objects))
.Returns(myFilteredFoos.Cast<IFooBar>());
Run Code Online (Sandbox Code Playgroud)
这会引发异常,因为myFilteredFoos在Cast<IFooBar>()调用期间为null .这不符合我的预期吗?我认为FilterCollection会被调用,然后myFilteredFoos将是非null并允许演员.
FilterCollection是不是能够返回一个null,它使我得出它没有被调用的结论.另外,当我这样声明时myFilteredFoos:
Queryable myFilteredFoos;
Run Code Online (Sandbox Code Playgroud)
Return调用抱怨myFilteredFoos可以在初始化之前使用.
我有ListView具有以下EditItemTemplate:
<EditItemTemplate>
<tr style="">
<td>
<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
<asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:TextBox ID="FundingSource1TextBox" runat="server" Text='<%# Bind("FundingSource1") %>' />
</td>
<td>
<asp:TextBox ID="CashTextBox" runat="server" Text='<%# Bind("Cash") %>' />
</td>
<td>
<asp:TextBox ID="InKindTextBox" runat="server" Text='<%# Bind("InKind") %>' />
</td>
<td>
<asp:TextBox ID="StatusTextBox" runat="server" Text='<%# Bind("Status") %>' />
</td>
<td>
<asp:TextBox ID="ExpectedAwardDateTextBox" runat="server" Text='<%# Bind("ExpectedAwardDate","{0:MM/dd/yyyy}) %>' onclientclick="datepicker()" />
</td>
</tr>
</EditItemTemplate>
Run Code Online (Sandbox Code Playgroud)
我想格式化,ExpectedAwardDateTextBox所以它显示了一个较短的日期时间,但没有找到一种方法来做到这一点,而不进入后面的代码.在项目模板中,我有以下行来格式化标签中显示的日期:
<asp:Label ID="ExpectedAwardDateLabel" runat="server" Text='<%# String.Format("{0:M/d/yyyy}",Eval("ExpectedAwardDate")) %>' />
Run Code Online (Sandbox Code Playgroud)
我想找到一个类似的方法来做insertItemTemplate.
我在尝试使用自定义视图建模创建表单创建实体时遇到了麻烦.下面是我的类别创建表单的自定义视图模型.
public class CategoryFormViewModel
{
public CategoryFormViewModel(Category category, string actionTitle)
{
Category = category;
ActionTitle = actionTitle;
}
public Category Category { get; private set; }
public string ActionTitle { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
这是UI的用户控件
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CategoryFormViewModel>" %>
<h2>
<span><%= Html.Encode(Model.ActionTitle) %></span>
</h2>
<%=Html.ValidationSummary() %>
<% using (Html.BeginForm()) {%>
<p>
<span class="bold block">Ba?l?k:</span>
<%=Html.TextBoxFor(model => Model.Category.Title, new { @class = "width80 txt-base" })%>
</p>
<p>
<span class="bold block">S?ra Numaras?:</span>
<%=Html.TextBoxFor(model => Model.Category.OrderNo, new { @class = "width10 …Run Code Online (Sandbox Code Playgroud) 在Oracle(10g)中,当我使用View(非物化视图)时,Oracle在执行视图时会考虑where子句吗?
比方说我有:
MY_VIEW =
SELECT *
FROM PERSON P, ORDERS O
WHERE P.P_ID = O.P_ID
Run Code Online (Sandbox Code Playgroud)
然后我执行以下操作:
SELECT *
FROM MY_VIEW
WHERE MY_VIEW.P_ID = '1234'
Run Code Online (Sandbox Code Playgroud)
执行此操作时,oracle是否首先执行视图查询,然后根据我的where子句(其中MY_VIEW.P_ID ='1234')对其进行过滤,或者它是否作为视图执行的一部分进行过滤?如果它不执行后者,并且P_ID有一个索引,那么我是否也会失去索引功能,因为Oracle会对没有索引的视图而不是具有索引的基表执行查询?
我有一个xml文档,为我的项目保存一个小数据,我想将我的xml转换为excel文件(microsoft office excel 2003及以上版本)
我该如何以编程方式执行此操作?
我们有一些代码需要运行得更快.它已经分析了,所以我们想要使用多个线程.通常我会设置一个内存队列,并有许多线程从事队列的工作并计算结果.对于共享数据,我将使用ConcurrentHashMap或类似的.
我真的不想再去那条路了.从我所看到的使用演员将导致更清晰的代码,如果我使用akka迁移到超过1 jvm应该更容易.真的吗?
但是,我不知道如何在演员中思考,所以我不知道从哪里开始.
为了更好地了解问题,这里有一些示例代码:
case class Trade(price:Double, volume:Int, stock:String) {
def value(priceCalculator:PriceCalculator) =
(priceCalculator.priceFor(stock)-> price)*volume
}
class PriceCalculator {
def priceFor(stock:String) = {
Thread.sleep(20)//a slow operation which can be cached
50.0
}
}
object ValueTrades {
def valueAll(trades:List[Trade],
priceCalculator:PriceCalculator):List[(Trade,Double)] = {
trades.map { trade => (trade,trade.value(priceCalculator)) }
}
def main(args:Array[String]) {
val trades = List(
Trade(30.5, 10, "Foo"),
Trade(30.5, 20, "Foo")
//usually much longer
)
val priceCalculator = new PriceCalculator
val values = valueAll(trades, priceCalculator)
}
}
Run Code Online (Sandbox Code Playgroud)
如果有经验的玩家可以建议如何映射演员,我会很感激.
我正在寻找一种有效的方法来获取整个SVN存储库或给定资源路径的唯一提交作者列表.我没有能够专门为此找到一个SVN命令(并且不要指望一个),但我希望有一个更好的方法,我到目前为止在终端(在OS X上)尝试过:
svn log --quiet | grep "^r" | awk '{print $3}'
svn log --quiet --xml | grep author | sed -E "s:</?author>::g"
Run Code Online (Sandbox Code Playgroud)
这些中的任何一个都会为每行提供一个作者姓名,但它们都需要过滤掉相当多的额外信息.它们也不处理相同作者名称的重复,因此对于很少作者的许多提交,有大量冗余流过网络.通常我只想看到唯一的作者用户名.(实际上,有时候推断每个作者的提交次数可能很方便,但即使在这些情况下,如果聚合数据的发送也会更好.)
我通常使用仅限客户端访问,因此svnadmin命令不太有用,但如果有必要,我可能会在必要时或者更高效的情况下特别关注存储库管理员.我正在使用的存储库有成千上万的提交和许多活跃的用户,我不想给任何人带来不便.
我有一个Excel电子表格.电子表格中的一列包含pdf文件的名称; 页码(name of file;5).
如何编写VBA函数,以便当用户单击该列中的任何单元格时,文件名和页码将作为变量传递,pdf文件将打开到指定的页面?