标签: wcf

MVVM中的数据应该存储在哪里?

我有这个使用 MVVM 的 Silverlight Prism 应用程序。该模型调用 WCF 服务并返回数据列表。

ViewModel 绑定到 View,所以 ViewModel 应该有一个 List 属性。

我应该在 MVVM 中保留 WCF 服务返回的数据吗?

List 属性是否应该使用其 getter 调用模型?其中模型具有返回存储在模型中的数据的 ReturnListOfData() 方法。

或者 ViewModel 是否在 Model 调用服务器完成后存储数据?


这是对MVVM 中的 WCF 或其他 Web 服务的调用哪里放置?

architecture silverlight wcf prism mvvm

0
推荐指数
1
解决办法
1561
查看次数

带有消息序列化的 WCF

我正在编写一个简单的 wcf 服务,将请求提交给某个网关进行处理。

正在通过执行以下操作来执行请求:

我正在编写一个 WCF 服务,该服务将请求提交给一些期望得到如下内容的服务:

gatewayService.SendRequest(request);
Run Code Online (Sandbox Code Playgroud)

其中 gatewayService 是 WCF 代理,请求是我自己的对象,它继承了 WCF Message 对象。

请求对象有几个属性,如:

[MessageBodyMember]
public ReportCommandLineRequest ReportRequest { get; set; }

[MessageBodyMember]
public ImportCommandLineRequest ImportRequest { get; set; }
Run Code Online (Sandbox Code Playgroud)

我的问题是当这个请求对象被序列化时。在服务器端,我收到了一条看起来像这样的大块肥皂消息:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
            xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
      <a:Action s:mustUnderstand="1">http://tempuri.org/IReportClient/RunReport/IGatewayAdapter/SendRequest</a:Action>
      <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo4jiWNjcsdxHiUhlOA63xYEAAAAApgt+BuVvcEixP33+yOQTgRHZQSyr4L5ImMHVeEWLFBMACQAA</VsDebuggerCausalityData>
      <a:To s:mustUnderstand="1">net.tems://localhost:7222/queue/LB.FIA.Gateway.STAGE.InputQueue</a:To>
   </s:Header>
   <s:Body>
      <SendRequest xmlns="http://tempuri.org/IReportClient/RunReport">
          <request xmlns:b="http://schemas.datacontract.org/2004/07....
Run Code Online (Sandbox Code Playgroud)

另一方面,我希望在服务器端只得到上面列出的属性的序列化(ReportRequest/ImportRequest),并希望得到一个序列化的 xml 看起来像这样(没有里面的所有垃圾:

<ReportCommandLineRequest>
  <outputFileName>gatewayReportOutput-01082010-150043.pdf</outputFileName>
  <CommandLineArg
    name="format"
..
</ReportCommandLineRequest>
Run Code Online (Sandbox Code Playgroud)

谁能帮我弄清楚我该怎么做?

谢谢。

wcf serialization xml-serialization

0
推荐指数
1
解决办法
2138
查看次数

如何从 WCF 服务读取流

我创建了一个 WCF 服务来流式传输文件(下载)。服务代码如下

public Stream GetCoverScan(List<string> productIDs)
{
    FileStream stream = new FileStream("", FileMode.Open, FileAccess.Read);
    return stream;
}
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何在客户端使用它。我已经在客户端上创建了一个代理,我可以通过创建服务对象来查看该方法,但是我如何读取流。

请指教

配置

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="StreamedHttp" transferMode="StreamedResponse"
                     maxReceivedMessageSize="67108864">
            </binding>
        </basicHttpBinding>
    </bindings>
    <services>
        <service name="Streaming.Service1"
                 behaviorConfiguration="Streaming.Service1Behavior">
            <endpoint address="" bindingConfiguration="StreamedHttp"
                      binding="basicHttpBinding" contract="Streaming.IService1">
            </endpoint>
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior name="Streaming.Service1Behavior">
                <serviceMetadata httpGetEnabled="true"/>
                <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

合同

[ServiceContract]
public interface IService1
{
    [OperationContract]
    string GetData(string name);

    [OperationContract]
    System.IO.Stream GetCoverScan(List<string> productIDs);
}
Run Code Online (Sandbox Code Playgroud)

绑定

</bindings>
Run Code Online (Sandbox Code Playgroud)

wcf

0
推荐指数
1
解决办法
8748
查看次数

如何使用VB6调用WCF服务并设置其配置

我已经浏览了一些主题,并且能够使用以下代码在 vb6 中调用服务:

Dim sUrl As String
Dim response As String
Dim xmlHttp

Private Sub Form_Load()
sUrl = "http://abc.com/services/abc.svc"


Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP")
xmlHttp.Open "POST", sUrl, False

xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlHttp.send
Dim response As String
response = xmlHttp.responseText

Set xmlHttp = Nothing


End Sub
Run Code Online (Sandbox Code Playgroud)

问题是我如何在 vb6 中调用 WCF 服务并将参数传递给它的方法并获得结果?

xml vb6 wcf

0
推荐指数
1
解决办法
2054
查看次数

在android中解析SoapObject响应

我的代码是:

public class MainActivity extends Activity implements OnClickListener {

Button b;
private static String NAMESPACE = "http://tempuri.org/";
private static String METHOD_NAME = "GetList";
private static String SOAP_ACTION = "http://tempuri.org/IWCFMasterRole/GetList";
private static String URL = "http://172.16.0.1:55355/WCFMasterRole.svc";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    b = (Button) findViewById(R.id.button1);
    b.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    if (v.getId() == R.id.button1) {
        new MyClass().execute("");
    }
}

class MyClass extends AsyncTask<String, Void, SoapObject> {
    SoapObject result;
    @Override
    protected SoapObject doInBackground(String... params) {
        try …
Run Code Online (Sandbox Code Playgroud)

wcf android android-ksoap2

0
推荐指数
1
解决办法
3881
查看次数

无效的初始化成员声明符

我正在尝试检查从 SQL 返回的字段是否为空,但我一直在 isDBNull 上收到“无效的初始化程序成员声明符”

这是我的代码,可能是什么原因造成的?

while (dr.Read())
{
    staff.Add(new Staff()
    {
        id = dr.GetInt32(dr.GetOrdinal("id")),
        dr.IsDBNull(dr.GetOrdinal("NAME")) ? null : dr.GetString(dr.GetOrdinal("NAME")),

        PARENT = dr.GetString(dr.GetOrdinal("PARENT")),
        VALUE = dr.GetString(dr.GetOrdinal("VALUE")),
        VALUETYPE = dr.GetString(dr.GetOrdinal("VALUETYPE"))
    });
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net wcf

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

从数据库到填充列表的对象

我正在做一个学校项目,我们正在预订电影。该程序的标准之一是在列表中显示数据库中的所有电影。

我知道这可能是一个非常简单的问题,但我需要一个指向正确方向的指针。

如何制作包含电影所有数据的电影对象 ( movieID, movieName, movieLength, movieDesc)

如何使用此数据填充列表?

我们正在使用 C# 中的 WCF 在基于客户端/服务器的体系结构中编写程序

如果您需要进一步的阐述或细节,请告诉我。

提前致谢。这是我在数据库中创建电影的代码,我不确定如何从同一数据库创建电影对象,以在我的代码中使用。

SqlConnection sc = new SqlConnection();
sc.ConnectionString = ("Data Source=balder.ucn.dk;Initial Catalog=dmaa0213_6;********");
SqlCommand com = new SqlCommand();
sc.Open();
com.Connection = sc;
com.CommandText = ("INSERT into movies (movieName, movieLength, movieDescription) VALUES  ('" + movieName + "','" + movieLength + "','" + movieDesc + "');");
com.ExecuteNonQuery();
sc.Close();
Run Code Online (Sandbox Code Playgroud)

c# sql wcf

0
推荐指数
1
解决办法
6089
查看次数

Biztalk WCF-WebHttp发送端口具有多个URL参数

我正在使用Biztalk中的RESTful API。我需要针对以下端点进行POST:

http://mycompany.sb01.com/atwork/api/v5.0

我已经通过Postman通过以下测试了我的API网址(哪个有效):

http://mycompany.sb01.com/atwork/api/v5.0/UID?name=bob&id=028153

由于在POST中具有多个URL参数,因此在将它转换为BizTalk应用程序中的发送端口时遇到问题。当我在Biztalk管理控制台中具有以下绑定时,我得到一个System.ArgumentException,它告诉我'='是意外的令牌,而预期的令牌是';'。

<BtsHttpUrlMapping>
<Operation Name="ID Insert" Method="POST" Url= "/UID?name={name}&id={id}"/>
</BtsHttpUrlMapping>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过在此处查看msdn文档:https : //msdn.microsoft.com/zh-cn/library/jj572853.aspx

但它只能与1个URL参数一起使用,而不能与多个URL参数一起使用。如果我删除:

&id={id}
Run Code Online (Sandbox Code Playgroud)

从我的绑定来看,它没有任何例外。Biztalk如何处理多个URL参数?

wcf biztalk biztalk-2013

0
推荐指数
1
解决办法
802
查看次数

asp.net core 2.0中的WCF-无法使用授权建立SSL / TLS安全通道的信任关系

以前,我有一个面向应用程序的框架4.5.1,并使用Web Reference添加了WCF服务。这可以完美运行,并且能够通过服务器成功进行身份验证。

旧代码:

ServicePointManager.Expect100Continue = false;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

IService orderService = new Service();

// private method to load certificate
var cert = LoadCertificate(@"....\00050._.1.p12", "pwd");

oIPGApiOrderService.ClientCertificates.Add(cert);

oIPGApiOrderService.Url = @"service_url";

NetworkCredential nc = new NetworkCredential("username", "pwd");
oIPGApiOrderService.Credentials = nc;
Run Code Online (Sandbox Code Playgroud)

现在,我要升级到.net core 2.0,并以.net standard 2.0为目标。我已经添加了该服务正在使用服务引用(连接的服务)。生成的代码已更改,其中使用了通道工厂等。

新代码:

ServicePointManager.Expect100Continue = false;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

System.ServiceModel.BasicHttpBinding result = new System.ServiceModel.BasicHttpBinding();
result.MaxBufferSize = int.MaxValue;
result.ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max;
result.MaxReceivedMessageSize = int.MaxValue;
result.AllowCookies = true;
result.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.Transport;

IService client = new Service(result, new EndpointAddress("service_url"));

client.ClientCredentials.ClientCertificate.Certificate = new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net wcf x509certificate2 asp.net-core

0
推荐指数
1
解决办法
1180
查看次数

从dll到winform应用程序的通知

我创建了一个C#项目,并使用它的dll作为另一个Winform应用程序中的引用,并调用dll项目中的函数.

我有一个要求,我必须从该dll调用winform的函数.有什么办法可以将函数注册到我的dll中吗?或者在某种情况下,我能从dll通知winform应用程序的任何其他方式?

我只是想从dll向winform应用程序发送一种通知.

我将使用WCF来包装dll项目.(任何帮助?)

想法/代码示例将非常有用.

c# wcf winforms

-1
推荐指数
1
解决办法
399
查看次数