小编rac*_*cow的帖子

Asp.Net MVC4 Web API - 从查询返回OData格式化的Json,无需自定义MediaTypeFormatter

我正在尝试使用新的WebAPI测试版来构建一个Web服务,我可以使用OData查询字符串约定进行查询,并让它返回OData格式的Json.我也想使用OData 2.0(而不是1.0).

虽然看起来它不支持$ select选项并且标题似乎能够覆盖$ format选项,但返回IQueryable泛型似乎提供了对我需要的大多数其他查询选项的支持.

我真正在努力的是如何最好地提供符合OData 2.0规范的Json对象.WebAPI在查询时只返回正常的Json数据.例如,如果我执行类似这样的GET请求...

http://localhost:XXXXX/vendor/?$filter=RONUMBER eq '2597385'&$select=VENDORID,VENDORNAME&$top=1&$format=Json
Run Code Online (Sandbox Code Playgroud)

..为了获得与我的开发机器上指定的RONumber匹配的最高匹配,我得到一个包含以下Json的响应...

[{"MEPartNumber":"11-2222-3-4444","MFGPartNumber":"123456-123","MFGSerialNumber":"ABC123","RONumber":"987654321","VendorId":"1234567","VendorName":"ACME SERVICE CENTER"}]
Run Code Online (Sandbox Code Playgroud)

我需要符合OData 2.0规范的Json.更像这样的东西..

OData V2: { 
  "d" : { 
    "results":  { 
        "__metadata": {
            "uri": "http://someserver/foo/vendor(1)",
            "type": "Vendor"
        },
        "MEPartNumber": "11-2222-3-4444",
        "MFGPartNumber": "123456-123",
        "MFGSerialNumber": "ABC123", 
        "RONumber":"987654321", 
        "VendorId":"1234567", 
        "VendorName": "ACME SERVICE CENTER"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想我可以写一个自定义MediaTypeFormatter来获得我想要的结构.我也许能够修改我返回的对象以模仿所需Json的结构.除了这两个选项,有没有人知道一个聪明的方法让WebAPI给我OData 2.0格式的Json对象?

asp.net odata asp.net-mvc-4 asp.net-web-api

9
推荐指数
1
解决办法
3818
查看次数

WF4 RC - 使用ActivityXamlServices从松散的Xaml加载WF服务时无法创建未知类型

我正在尝试动态托管WF4(RC)服务.我有一个包含两个项目的测试解决方案.第一个是声明性工作流服务库,其中包含一个根流程图活动,以及一个简单的自定义代码活动.工作流服务库不依赖于任何其他自定义程序集或引用.第二个是我的主机应用程序,在我的测试解决方案中只是一个控制台应用程序.

在我的主机应用程序中,我尝试使用ActivityXamlServices将工作流服务的Xaml加载到活动中,然后使用WorkflowServiceHost使用该活动启动工作流实例.

一旦我尝试新建WorkflowServiceHost对象,我就会遇到这个异常......

无法创建未知类型'{clr-namespace:DeclarativeServiceLibrary1} CodeActivity1'.

如果我从流程图设计器中删除CodeActivity1,一切运行正常.如果我从主机项目添加对工作流服务项目的直接引用,然后使用我的流程图活动的实例而不是从Xaml创建的活动创建WorkflowServiceHost,它也可以正常工作.

在动态加载时,似乎不喜欢使用我的CodeActivity.

任何人都有任何想法,为什么我不能动态创建我的工作流服务?

我的代码如下......

DeclarativeServiceLibrary1.Activity1.xaml ...

<Activity mc:Ignorable="sap" x:Class="DeclarativeServiceLibrary1.Activity1" sap:VirtualizedContainerService.HintSize="654,676" mva:VisualBasic.Settings="Assembly references and imported namespaces for internal implementation" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:local="clr-namespace:DeclarativeServiceLibrary1" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="clr-namespace:Microsoft.VisualBasic;assembly=System" xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities" xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/servicemodel" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:s1="clr-namespace:System;assembly=System" xmlns:s2="clr-namespace:System;assembly=System.Xml" xmlns:s3="clr-namespace:System;assembly=System.Core" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=System" xmlns:scg1="clr-namespace:System.Collections.Generic;assembly=System.ServiceModel" xmlns:scg2="clr-namespace:System.Collections.Generic;assembly=System.Core" xmlns:scg3="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:sd="clr-namespace:System.Data;assembly=System.Data" xmlns:sl="clr-namespace:System.Linq;assembly=System.Core" xmlns:st="clr-namespace:System.Text;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Flowchart sad:XamlDebuggerXmlReader.FileName="C:\dev\test\MyWorkflow\DeclarativeServiceLibrary1\Activity1.xaml" sap:VirtualizedContainerService.HintSize="614,636">
    <sap:WorkflowViewStateService.ViewState>
      <scg3:Dictionary x:TypeArguments="x:String, x:Object">
        <x:Boolean x:Key="IsExpanded">False</x:Boolean>
        <av:Point x:Key="ShapeLocation">270,2.5</av:Point>
        <av:Size x:Key="ShapeSize">60,75</av:Size>
        <av:PointCollection x:Key="ConnectorLocation">300,77.5 300,107.5 300,165</av:PointCollection>
      </scg3:Dictionary>
    </sap:WorkflowViewStateService.ViewState>
    <Flowchart.StartNode>
      <FlowStep x:Name="__ReferenceID0">
        <sap:WorkflowViewStateService.ViewState>
          <scg3:Dictionary x:TypeArguments="x:String, x:Object">
            <av:Point x:Key="ShapeLocation">172.5,165</av:Point>
            <av:Size x:Key="ShapeSize">255,90</av:Size>
            <av:PointCollection x:Key="ConnectorLocation">300,255 300,285 300,299.5</av:PointCollection>
          </scg3:Dictionary>
        </sap:WorkflowViewStateService.ViewState> …
Run Code Online (Sandbox Code Playgroud)

xaml workflow-foundation workflow-foundation-4

8
推荐指数
2
解决办法
1万
查看次数

使用jasmine测试javascript UI的最佳方法

我第一次看到茉莉花框架,它看起来很有前途,但我找不到一个简单的方法来使用dom.

我的意思是,模拟用户交互,如完成和输入,单击按钮,然后检查dom是否正确更新,如输入验证后显示错误,以及显示修改后的数据.只是你通常用硒等工具做的那种东西.

有没有一种标准的方法可以做到这一点,或者是ui测试茉莉花的领域,我应该为这样的任务寻找另一个框架?

javascript tdd selenium jasmine

7
推荐指数
1
解决办法
2万
查看次数

如何在Application_Start发生后动态添加包?

我有一个asp.net MVC4 Web应用程序,它使用样式捆绑主题.我有一个像这样的物理主题文件夹结构......

 Themes\
     _Base\
     Theme1\
     Theme2\
     ...\
Run Code Online (Sandbox Code Playgroud)

每个主题文件夹中都包含任意数量的LESS文件.在我的BundleConfig.RegisterBundles方法中,我有一些逻辑循环每个主题文件夹并为每个创建一个包.System.Web.Optimization的捆绑机制将监视现有捆绑包中的文件和文件夹中的更改并刷新捆绑缓存,这样可以正常工作.

但是,我需要的是将新主题文件夹(即Theme3\)复制到我的Themes根文件夹中的方法,以及应用程序在不必先重新启动它的情况下识别它们.我试过创建一个引用每个文件夹中所有文件的"虚拟"包...

var changeTracking = new StyleBundle(BUNDLE_ROOT);
changeTracking.Transforms.Clear();
changeTracking.IncludeDirectory(THEME_ROOT, "*.less", true);
changeTracking.Transforms.Add(new LessTransform());
changeTracking.Transforms.Add(new CssMinify());
bundles.Add(changeTracking);
Run Code Online (Sandbox Code Playgroud)

......但这似乎没有帮助.当我做的时候Theme3\,它不会触发另一次调用BundleConfig.RegisterBundles.我仍然需要执行IISRESET,回收应用程序池等,以便识别新主题.

有没有什么办法可以在Application_Start发生后动态添加包?

asp.net asp.net-mvc-4 bundling-and-minification asp.net-optimization

7
推荐指数
1
解决办法
2317
查看次数

WF4能否搜索实例?

我在AppFabric中部署了WF4工作流服务.是否有任何内置方法可以跨所有当前活动的工作流实例进行通用搜索?

例如,"给我一个包含变量x = 5的所有活动实例的列表"?

如果有人能指出我正确的方向,我将不胜感激.

workflow-foundation workflow-foundation-4 appfabric appfabric-beta-2

3
推荐指数
1
解决办法
1331
查看次数