我正在构建一个MVC 3项目,该项目需要通过路径在控制器中引用\bin\位于项目文件夹中的程序集.
有人能指出我正确的方向来构建\bin\文件夹的相对路径吗?
在VS 2010中以调试模式运行项目会导致当前目录C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0,因此使用.\bin\查找bin该路径中的文件夹.
谢谢
为相对较长的帖子提前道歉 - 我试图提供尽可能多的相关信息(包括代码清单)!
我一直在为web.config文件中的一个自定义部分实现一些我过去几个小时工作的东西,但我似乎无法让它工作.以下是我想用作XML结构的内容:
<mvcmodules>
<module moduleAlias="name" type="of.type">
<properties>
<property name="propname" value="propvalue" />
</properties>
</module>
</mvcmodules>
Run Code Online (Sandbox Code Playgroud)
目前,我有以下类设置和工作(有点):
我能看到接近我想要做的方式的唯一方法是将我的声明包装在另一个父调用中.但是,当我这样做时,如果我有多个标签实例("该元素可能只在本节中出现一次."),并且使用一个标签,则信息未被读入对象.
我写了一些基本文档,这样你就可以了解我是如何构建这个文档的,并希望看到我出错的地方
ModuleSection 此类包含ModulesCollection对象
namespace ASPNETMVCMODULES.Configuration
{
public class ModulesSection : System.Configuration.ConfigurationSection
{
[ConfigurationProperty("modules", IsRequired = true)]
public ModuleCollection Modules
{
get
{
return this["modules"] as ModuleCollection;
}
}
}
Run Code Online (Sandbox Code Playgroud)
ModulesCollection 包含Module对象的集合
namespace ASPNETMVCMODULES.Configuration
{
public class ModuleCollection : ConfigurationElementCollection
{
[ConfigurationProperty("module")]
public Module this[int index]
{
get
{
return base.BaseGet(index) as Module;
}
set
{
if (base.BaseGet(index) …Run Code Online (Sandbox Code Playgroud) 我在 F# 中有一组相对简单的记录,与 JSON 有效负载匹配,用于(反)序列化。当我尝试反序列化有效负载时,出现错误
Unexpected property 'tags' found when reading union. Path 'products[0].tags'
Run Code Online (Sandbox Code Playgroud)
我的记录和有效负载在结构上匹配,但在字段名称大小写上不匹配;但我CamelCasePropertyNamesContractResolver在 JSON.NET 设置中添加了一个来解决这个问题。
当我从示例有效负载和记录类型中删除标签属性时,错误会继续提及变体。我还尝试向记录添加CLIMutable和属性。向相关字段DataContract添加属性也没有帮助。JsonProperty
查看 JSON.NET 源代码,当找不到具有该名称的联合案例时,似乎会出现此错误。但是,在本例中,我正在处理记录中的字符串,因此这对我来说没有意义。
以前有人遇到过这个吗?这是图书馆的限制吗?还是我用错了?
进一步调查发现,这似乎是序列化string option记录中的类型字段(现在添加到下面的代码中)的问题,该字段在有效负载中具有值。
F#
type Product = {
Id: int;
Title: int;
Tags: string;
Variants: Variant list;
Vendor: string option;
}
type ProductList = {
Products: Product list
}
Run Code Online (Sandbox Code Playgroud)
JSON
{
"products": [
{
"id": 123,
"title": "A title",
"tags": "some, tags"
"variants": [],
"vendor": "The Vendor"
... …Run Code Online (Sandbox Code Playgroud) 一些跟踪显示正在抛出CommunicationException,因为我的异常T没有正确序列化的问题; 因为,两层深,我有一个匿名类型的对象,这是不可序列化的.删除它并冒泡更改似乎解决了它.在此之前还有其他小事我做过,但是我不记得我的生活是什么,只是在配置中没有完成.
我从我的踪迹中收到消息,例如:
Type 'RebuiltWCFService.Requests.HelloWorldRequest' with data contract name 'HelloWorldRequest:http://schemas.datacontract.org/2004/07/RebuiltWCFService.Requests' is not expected.
Consider using a DataContractResolver or add any types not known statically to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding them to the list of known types passed to DataContractSerializer.
Run Code Online (Sandbox Code Playgroud)
我今天遇到了一个看似奇怪的问题,我无法找到答案!
问题:当我抛出FaultException时,我的服务抛出了一个CommunicationException!如果我不抛出异常,它不会这样做.
在我的服务中,我正确地定义了错误合同:
[OperationContract]
[FaultContract(typeof(Faults.HelloWorldFault))]
Responses.HelloWorldResponse HelloWorld(Requests.HelloWorldRequest parameter);
Run Code Online (Sandbox Code Playgroud)
然后在错误条件下我抛出了正确类型的异常:
if (_errors.Count() > 0)
{
Faults.HelloWorldFault fault = new Faults.HelloWorldFault(_errors);
throw new FaultException<Faults.HelloWorldFault>(fault, new FaultReason("There are …Run Code Online (Sandbox Code Playgroud) 我试图在Java中比较两毫秒的值.一个来自日历,一个来自System.currentTimeMillis().但是,日历中的值似乎总是远远大于System.currentTimeMillis()正确时间的值.
为了构建日历,我正在解析格式中的日期字符串dd/MM/yyyy HH:mm,并将它的替换部分放入日历中(为简洁起见,省略了try-catch).
Calendar obCal = null;
//Exception here shows invalid format
DateFormat DF = new SimpleDateFormat("dd/MM/yyyy HH:mm");
DF.parse(Date);
//Example string: 29/11/2011 16:30
String[] parts = Date.split("/");
obCal = Calendar.getInstance();
int Y = Integer.parseInt(parts[2].split(" ")[0]);
int m = Integer.parseInt(parts[1]);
int d = Integer.parseInt(parts[0]);
int H = Integer.parseInt(parts[2].split(" ")[1].split(":")[0]);
int M = Integer.parseInt(parts[2].split(" ")[1].split(":")[1]);
obCal.set(Calendar.YEAR, Y);
obCal.set(Calendar.MONTH, m);
obCal.set(Calendar.DAY_OF_MONTH, d);
obCal.set(Calendar.HOUR_OF_DAY, H);
obCal.set(Calendar.MINUTE, M);
obCal.set(Calendar.SECOND, 0);
obCal.set(Calendar.MILLISECOND, 0);
Run Code Online (Sandbox Code Playgroud)
在此之后检查日历显示我正在接收正确的日期和时间.然后我获得自纪元以来的毫秒值obCal.getTimeInMillis(),并将其存储为秒数long
long stamp = …Run Code Online (Sandbox Code Playgroud)