排名
1
文章
860
粉丝
112
评论
163
.net core自定义项目模板,创建自己的模板项目,使用命令行创建模板项目
尘叶心繁 : 可以可以讲真的我都想弄个模板
net core webapi post传递参数
庸人 :
确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 : 已精
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 :
疯狂反射
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

一:建立接口 CallbackContract = typeof(ICallback)指定需要回调通信的接口,该接口方法由前端实现
- [ServiceContract(CallbackContract = typeof(ICallback))]
- public interface IUserCallBack
- {
- [OperationContract]
- ReturnData<string> Login(string username, string password);
- }
-
-
- public interface ICallback
- {
- [OperationContract(IsOneWay = true)]//单向调用,不需要返回值
- void LoginCallBack(string hello);
- }
二:实现接口
- public class UserCallBack : IUserCallBack
- {
-
-
- UserDao ud = new UserDao();
- public ReturnData<string> Login(string username, string password)
- {
- ICallback callbackt = OperationContext.Current.GetCallbackChannel<ICallback>();
-
- callback.LoginCallBack("successful");//可以进行直接回调当前客服端的实现的LoginCallBack方法
-
- //如何需要回调特定的客服端就把callbackt 与用户标识放到键值对里,在更具特定的情况回调客服端方法
- }
- }
三:进行wcf配置
- <!--这里是添加的开始-->
- <services>
- <service name="JSDService.Users.UserCallBack" >
- <endpoint address="" binding="pollingDuplexHttpBinding" contract="JSDService.Users.IUserCallBack" />
- <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
- </service>
-
- </services>
- <extensions>
- <bindingExtensions>
- <add name="pollingDuplexHttpBinding" type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,System.ServiceModel.PollingDuplex"/>
- </bindingExtensions>
- </extensions>
- <!--这里是添加的结束-->
四:siverlight前端 直接放一个按钮进行测试
页面:
- <Grid x:Name="LayoutRoot" Background="White">
- <TextBox Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
- <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="12,41,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
- <TextBlock Height="23" HorizontalAlignment="Left" Margin="12,70,0,0" Name="textBlock1" Text="TextBlock" VerticalAlignment="Top" Width="120" />
- </Grid>
后端:
- ServiceReferenceTest.UserCallBackClient client;
- public MainPage()
- {
- InitializeComponent();
-
-
- //扩展的轮询机制的双向通讯
- PollingDuplexHttpBinding binding = new PollingDuplexHttpBinding()
- {
- //每次轮询建立的有效时间为20分钟
- InactivityTimeout = TimeSpan.FromMinutes(20)
- };
- //基础的http请求方式
- //Binding binding =new BasicHttpBinding();
- //svc服务地址
- EndpointAddress endPoint = new EndpointAddress("http://localhost:8087/Users/UserCallBack.svc");
- client = new ServiceReferenceTest.UserCallBackClient(binding, endPoint);
- //异步调用SayHellow方法
- //client.SayHellowAsync(this.textBox1.Text);
- //调用完成后ShowHello回调事件
- client.LoginCallBackReceived += client_LoginCallBackReceived;
-
-
- client.LoginCompleted += client_LoginCompleted;
- }
-
-
- void client_LoginCallBackReceived(object sender, ServiceReferenceTest.LoginCallBackReceivedEventArgs e)
- {
- MessageBox.Show(e.hello);
- }
-
-
- void client_LoginCompleted(object sender, ServiceReferenceTest.LoginCompletedEventArgs e)
- {
- MessageBox.Show(e.Result.Value);
- }
-
-
- private void button1_Click(object sender, RoutedEventArgs e)
- {
- client.LoginAsync("aj","aj");
- }
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价