从C#应用程序/库调用PHP方法将涉及使用WebRequest
和WebResponse
类的幼稚例如:
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create("http://server/script.php?method=my_method");
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Stream stream = response.GetResponseStream();
使用流,则可以通过解析或反序列化响应,如果它是例如一个JSON字符串。
该实现依赖于script.php
使用method
参数,并将该调用委托给该方法;如果你愿意的话,伪路由。更多的参数可以通过查询字符串传递,并被调用的方法使用。
这一点的另一个简单的例子:
$r = new Repository();
$d = $r->{$_GET['method']}();
echo json_encode($d);
然而,很多这可以使用现有的技术来实现。将PHP方法公开为API是已经完成的事情,并且存在大量RESTful API框架来加速此类应用程序的开发。对于使用API的C#应用程序/库也是如此,只要您使用某种客户端实现。
对您的问题的回答“是否有可能......”;当然是的,但是这是一个非常高的要求,实施将完全依赖问题领域。
作为一种改进方案(可能是太长时间评论)我目前工作的一个大规模检修项目。以前的开发者决定推出自己的一切。这对我意味着什么?我无法重用一盎司的代码库。他们推出了自己的安全策略。垃圾。
我就不多说了垃圾,因为我可以写更好(我可能,但并不多),而是因为我知道更好。
我喜欢成熟的技术,它们很好地融合在一起,并且拥有大量的社区和开发者支持。当我遇到问题时,在文档和这里之间,我通常可以很快找到解决方案。此外,组件的问题被记录,修复,并且可以解决。
滚动你自己的不可或缺的组成部分(是他们的安全或其他)进行生产,尤其是当你知道你对待它就像一个学习的经验,是不负责任的。
来源
2013-03-10 19:08:44
Dan
你在这里矛盾自己。您需要从您无权访问的数据库获取数据。 C#在这里出现在哪里?请详细解释架构。 – Cheesebaron 2013-03-10 18:29:24
我完全不矛盾自己。一旦我收到数据,我就使用C#来处理数据。 – tylerbhughes 2013-03-10 18:51:02
*是否有可能在PHP中创建一个接受字符串参数,然后以某种方式将字符串从C#传递到它的方法?* - 如果您可以使其有意义,那么我认为我们可能会在某处。 – Dan 2013-03-10 18:53:02