从angular 2和Silverlight应用程序中获取相同的WCF服务

时间:2018-03-29 14:29:07

标签: angularjs wpf wcf xmlhttprequest silverlight-4.0

目前,我们有一个带有WCF服务(后端)的Silverlight应用程序(前端)。现在,我们将使用Angular 2应用程序替换Silverlight应用程序而不更改WCF服务 - 只会更改UI。

在开始使用Angular 2之前,我们在Angular 2中创建了一个演示应用程序来验证WCF服务是否正在使用Angular 2,因为Silverlight支持basicHttpBinding,而对于Angular 2,我们需要使用{{1} }。目前我们正面临着这方面的问题。

是否可以并行使用Silverlight和Angular 2中的一个WCF服务? 请建议。

2 个答案:

答案 0 :(得分:1)

由于它们的工作方式,可以通过多种方式使用一个wcf服务。你说你面临着问题,但你没有说出它们是什么。

WCF服务有端点。 它是通过basicHttpBinding或webHttpBinding或其他任何方式定义连接的端点。 您可以为一个服务设置多个端点。 这些是在您的配置中定义的。 如果您查看那里,您将看到所有basichttpbinding端点。 为您的某项服务添加一个,然后使用angular进行操作。 这就是webHttpbinding的样子: https://weblogs.asp.net/kiyoshi/wcf-using-webhttpbinding-for-rest-services 对于一些常见问题,还有一些建议。 WCF的这个方面设置非常繁琐。 可以想象,重复使用相同的wcf服务是不切实际的。 在这种情况下,我建议将代码移植到web api(虽然我认为他们可能已经重新命名为当前风格)。编写大多数东西都很容易,因为它们只是带有指定路由属性的方法。

答案 1 :(得分:1)

是的,您可以先使用wcf服务我建议请使用角度4进行升级,因为角度2下面有很多错误是角度4服务示例代码。

角4服务

import { Injectable } from '@angular/core';
import {Http,Response} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';


@Injectable()
export class SampleService {
constructor(private _http: Http) { 

 };
getSample(Id) : Observable<any>{    
  return this._http.get('sample.svc/sample?Id='+Id)
.map((response:Response)=><any>response.json());
};  

}