- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我应该从我们的服务器使用 JS 访问资源。我已经设置了下面的代码。
var targetUrl = "http://somePlace.com/actualResourceName";
var xdr = new XDomainRequest();
xdr.onload = function () { alert(xdr.responseText); }
xdr.open("GET", targetUrl);
xdr.send();
但是,我不清楚另一端的方法需要如何创建。我提出了以下建议,完全意识到它不起作用。例如,我确定我缺少正确的属性。我什至不确定在哪里设置该方法应该对 actualResourceName
...
[???]
public String ActualResourceName()
{
return "Bye, bye, cruel word!";
}
我用谷歌搜索过,但没有找到任何解决方案。不过,我可能无意中发现了它,但没有意识到它很有用。
C#中的方法应该怎么写?
最佳答案
好的,到此为止。我将描述两种完成它的方法,最简单的方法:
您必须创建一个新的 ASP.NET MVC4 项目(无论是发布还是 RC),选择“WebApi”作为选项:
您将准备好模板。现在你右击“Controllers”文件夹,然后添加 -> Controller :
并填写它,例如像那样:
public class ActualResourceController : ApiController
{
public string Get()
{
return "Hey there! Getting the resource...";
}
}
默认路由在 Global.asax 中,当您转到 WebApiConfig.Register(...)
方法的定义时,您会看到默认路由是 host/api/ Controller
。让我们尝试一下,当您启动项目并进入(在我的例子中,端口由开发服务器自动选择)http://localhost:23030/api/ActualResource
你会得到:
<string>Hey there! Getting the resource...</string>
WebApi 根据 Accept
header 返回 JSON 或 XML,如果您希望 JSON 是唯一的/默认的,请使用 a look at this link.
您当然可以创建一个类并返回它,它将以类似于您将在下面使用 ServiceStack 看到的方式序列化为 XML/JSON。
现在 ServiceStack 是功能强大的开源 REST 网络服务框架。它的工作方式与 WebApi 略有不同,这里有一个快速介绍(尽管文档很好):
创建常规的 ASP.NET MVC 项目(在我的例子中是 MVC4)——您将拥有一个空模板:
然后启动包管理器控制台并键入(如文档建议的那样)Install-Package ServiceStack.Host.Mvc
,这将为您提供一个带有教程应用程序的 ServiceStack 项目模板,您可以使用它如果您愿意,可以稍后删除。
但首先,ServiceStack 在 DTO(请求-响应对象)上工作。因此,让我们创建它们,ActualResource
类将用作请求,ActualResourceResponse
类将用作响应。由于您在请求中没有参数,因此第一个参数很简单:
public class ActualResource
{
}
任何参数都是自动属性。现在响应:
public class ActualResourceResponse
{
public string ResourceName { get; set; }
}
以及服务类本身:
public class ActualResourceService : Service
{
public object Get(ActualResource request)
{
return new ActualResourceResponse {
ResourceName = "Hi! It's the resource name." };
}
}
你当然可以为你当前的目的返回裸string
,它会工作一样。
现在在ServiceStack创建的模板中,一切都发生在AppHost.cs文件中,让我们看一下并稍微修改一下:
Routes
.Add<Hello>("/hello")
.Add<Hello>("/hello/{Name*}")
.Add<Todo>("/todos")
.Add<Todo>("/todos/{Id}") //everything up to here are a template/tutorial routes, you can safely remove them
.Add<ActualResource>("/actualResource"); //and here you add a route to your own service
要使其正常工作,您必须转到 Global.asax 并注释掉整个 WebApiConfig.Register(GlobalConfiguration.Configuration)
行,然后进入 RouteConfig.RegisterRoutes
方法并添加:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("api/{*pathInfo}"); // <<<---- this line
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
需要多一点管道,但还不错。
现在当你启动服务时,进入localhost:whateverport/api/actualResource
,你会得到熟悉的字符串,下面是截图:
ServiceStack 可以序列化为各种格式,因此如果您访问 http://localhost:yourPort/api/actualResource?format=json
,您将获得:
{"resourceName":"Hi! It's the resource name."}
如果 ?format=xml
,则:
<ActualResourceResponse>
<ResourceName>Hi! It's the resource name.</ResourceName>
</ActualResourceResponse>
等等……
现在 ServiceStack 的设置有点复杂,但它支持例如开箱即用的 Memcache,您可以在 Redis 中使用,您可以使用各种身份验证提供程序,所有这些在某些情况下可能非常有用。但是,正如本叔叔曾经说过的那样,“能力越大,责任越大”,并且设置阶段更难......
现在您可以随意选择,恕我直言,这两个是目前最简单的选项。当然,这只是一个简单的入门教程,您将有机会在开始项目时深入探索这个主题。
关于c# - 使用 JavaScript 连接到 .NET 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13308583/
#include using namespace std; class C{ private: int value; public: C(){ value = 0;
这个问题已经有答案了: What is the difference between char a[] = ?string?; and char *p = ?string?;? (8 个回答) 已关闭
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 此帖子已于 8 个月
除了调试之外,是否有任何针对 c、c++ 或 c# 的测试工具,其工作原理类似于将独立函数复制粘贴到某个文本框,然后在其他文本框中输入参数? 最佳答案 也许您会考虑单元测试。我推荐你谷歌测试和谷歌模拟
我想在第二台显示器中移动一个窗口 (HWND)。问题是我尝试了很多方法,例如将分辨率加倍或输入负值,但它永远无法将窗口放在我的第二台显示器上。 关于如何在 C/C++/c# 中执行此操作的任何线索 最
我正在寻找 C/C++/C## 中不同类型 DES 的现有实现。我的运行平台是Windows XP/Vista/7。 我正在尝试编写一个 C# 程序,它将使用 DES 算法进行加密和解密。我需要一些实
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
有没有办法强制将另一个 窗口置于顶部? 不是应用程序的窗口,而是另一个已经在系统上运行的窗口。 (Windows, C/C++/C#) 最佳答案 SetWindowPos(that_window_ha
假设您可以在 C/C++ 或 Csharp 之间做出选择,并且您打算在 Windows 和 Linux 服务器上运行同一服务器的多个实例,那么构建套接字服务器应用程序的最明智选择是什么? 最佳答案 如
你们能告诉我它们之间的区别吗? 顺便问一下,有什么叫C++库或C库的吗? 最佳答案 C++ 标准库 和 C 标准库 是 C++ 和 C 标准定义的库,提供给 C++ 和 C 程序使用。那是那些词的共同
下面的测试代码,我将输出信息放在注释中。我使用的是 gcc 4.8.5 和 Centos 7.2。 #include #include class C { public:
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我的客户将使用名为 annoucement 的结构/类与客户通信。我想我会用 C++ 编写服务器。会有很多不同的类继承annoucement。我的问题是通过网络将这些类发送给客户端 我想也许我应该使用
我在 C# 中有以下函数: public Matrix ConcatDescriptors(IList> descriptors) { int cols = descriptors[0].Co
我有一个项目要编写一个函数来对某些数据执行某些操作。我可以用 C/C++ 编写代码,但我不想与雇主共享该函数的代码。相反,我只想让他有权在他自己的代码中调用该函数。是否可以?我想到了这两种方法 - 在
我使用的是编写糟糕的第 3 方 (C/C++) Api。我从托管代码(C++/CLI)中使用它。有时会出现“访问冲突错误”。这使整个应用程序崩溃。我知道我无法处理这些错误[如果指针访问非法内存位置等,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一些 C 代码,将使用 P/Invoke 从 C# 调用。我正在尝试为这个 C 函数定义一个 C# 等效项。 SomeData* DoSomething(); struct SomeData {
这个问题已经有答案了: Why are these constructs using pre and post-increment undefined behavior? (14 个回答) 已关闭 6
我是一名优秀的程序员,十分优秀!