Silverlight WebService调用C#函数

近了看到SL(Silverlight)写网页的功能非常强大,所以就开始了解一下。

开始的时候想做一个简单的登录,结果这个登录就已经把我卡住了,因为在SL里只有很少一部分C#里的函数。

但我偏偏用到了 System.Security.Cryptography.DESCryptoServiceProvider  这个加解密算法。

SL里没有这个东东,我还查了一下连MD5的算法也没有,里面的函数少得可怜……

但我发现在项目.Web里是有这个加解密存在的,可是怎么样也不知道怎么调用.Web项目下的函数

加载.Web程序的时候会弹出一个:You can only add project references to other Silverlight projects in the solution. 

 

在CSDN里寻找帮助才知道有个叫WebService的东东可以解决这样的问题。 

开始研究WebService这东东了,查了一下有同学写这样的博客,我得到了一个很大的帮助。

在.Web工具里Add New Item工程,找到Web Service如图:

 Silverlight WebService调用C#函数_第1张图片

修改好名字点Add就可以了。我添加的名字就叫KisMemberWebService.asmx

然后在KisMemberWebService.asmx.cs里添加上函数

默认有一个HelloWorld,参数HelloWorld做就可以了!这里不详细再说了。

 

下一步到SL工程里Add Service Reference

Silverlight WebService调用C#函数_第2张图片 

在框口中点击Discover按钮,就会自动把所有的函数都列在Operations里面,再输入名字就可以了。 

Silverlight WebService调用C#函数_第3张图片 

现在你就可以看到你刚刚插入的Service项目了…… 

Silverlight WebService调用C#函数_第4张图片 

 

手工的操作都完成了,现在我们要开始调用里面的函数了,我们尝试调用一下DesEncrypt这个函数。

 

代码
// Button按钮的代码
private   void  login_Click( object  sender, RoutedEventArgs e)
{
    KisMemberWebServiceProxy.KisMemberWebServiceSoapClient kisMember 
=   new  KisMemberWebServiceProxy.KisMemberWebServiceSoapClient();
    kisMember.DesEncryptAsync(
" 7aaaaaa6aa4aaaa1 " this .Passport.Text);
    kisMember.DesEncryptCompleted 
+=   new  EventHandler < HelloWorld.KisMemberWebServiceProxy.DesEncryptCompletedEventArgs > (userKismemberUsersCompleted);
}

void  userKismemberUsersCompleted( object  sender, HelloWorld.KisMemberWebServiceProxy.DesEncryptCompletedEventArgs e)
{
    
if  (e.Error  ==   null )
    {
        showDate(e.Result);
    }
    
else
    {
        showDate(
" error! " );
    }
}

// 最后显示结果
private   void  showDate( string  content)
{
    MessageBox.Show(content, 
" 登录 " , MessageBoxButton.OKCancel);
}

 

 

 

最后点一下登录Button就看到弹出的对话框了,嘻嘻…… 

 

Silverlight WebService调用C#函数_第5张图片 

你可能感兴趣的:(silverlight)