Foxtable(狐表)用户栏目专家坐堂 → 关于移植C#代码问题。


  共有2224人关注过本帖树形打印复制链接

主题:关于移植C#代码问题。

帅哥哟,离线,有人找我吗?
ycwk
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
关于移植C#代码问题。  发帖心情 Post By:2016/2/24 11:08:00 [只看该作者]

最近在研究钉钉的接口,有如下几个问题一直困扰着我,还请老师指教。
1.关于c# 中引用的各命名空间怎么处理?  如  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;之类的
2.关于类的定义,方法的定义? 是放在全局代码还是内部函数中?      

3.外部的DLL,特别是json的dll,怎么引用?

4.语法上要注意的细节?  

一直移植不成功,还请指教。

我在foxtable 的内部函数中增加了一个post函数
Dim encoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8")'编码格式   
   
        Dim strURL As String = args(0)
        Dim request As  System.Net.HttpWebRequest         
        request = directcast(System.Net.HttpWebRequest.Create(strURL),system.net.httpwebrequest)
       ' System.Net.HttpWebRequest = DirectCast(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)     
         request.Method = "POST"
        request.C
        Dim paraUrlCoded   As String = args(1)
        'Byte[] payload
        Dim payload() As Byte
        payload = System .Text. Encoding.UTF8.GetBytes (paraUrlCoded)
        request.ContentLength = payload. Length
        Dim writer As system.IO.Stream = request. GetRequestStream()    ' by wk 

        writer.Write (payload, 0, payload .Length)
        writer.Close ()
        Dim response As  System.Net.HttpWebResponse 
        'response = (System .Net. HttpWebResponse)request .GetResponse()
         response = DirectCast(request.GetResponse, System.Net.HttpWebResponse)
        'response = System .Net. HttpWebResponse.request .GetResponse()

        Dim s As System.IO.Stream
        s = response.GetResponseStream()
        Dim StrDate As String = ""
        Dim strValue As String  = ""
    
       'Using
       Dim Reader As System.IO.StreamReader = New System.IO.StreamReader(s, encoding) 
       
       'Dim Reader As StreamReader = new StreamReader(s, Encoding .UTF8)
       'End using
  
     

      Do While (StrDate = Reader.ReadLine()) <> ""
        
            'strValue =strValue + StrDate & vbcrlf &
         strValue =strValue + StrDate
             
       Loop

       MessageBox.Show(strvalue)

        Return Nothing


然后在窗口中设计了一个按钮:

Dim access_token As String= "xxxx"
Dim url As String  = "https://oapi.dingtalk.com/message/send?access_token=" & access_token


Dim param As String = "{""access_token"":""xxxxx""}"
'MessageBox.Show(param)

Functions.Execute("Post",url,param)


但是无法运行成功,还望指教。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:dddemo7.rar




 

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2016/2/24 11:09:00 [只看该作者]

如果能帮忙把c#的代码移植成为foxtable的试用版格式学习下就更好了。 很着急,还忘指教!!!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/24 11:14:00 [只看该作者]

1、http://www.foxtable.com/help/topics/1936.htm

 

2、写到全局代码

 

3、看1

 

4、代码没问题

 

转换c#代码参考 http://codeconverter.sharpdevelop.net/SnippetConverter.aspx

 


 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2016/2/24 12:14:00 [只看该作者]

1.关于dll的问题,在身份证读卡器那一节里面提示,第三方托管的dll不要引用,用import就可以,问题是我怎么判断是不是托管的dll?  .net写的就是托管的?  非.net写的就是非托管的?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/24 12:22:00 [只看该作者]

 能引用的进来,然后执行代码如msgbox(1)不报错的,就是可托管的。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2016/2/24 21:51:00 [只看该作者]

目前已成功post,可以发送企业会话消息,但是还需要发送个人会话消息(需要获取cid),其中有一个问题:
在钉钉开发文档中有一个地方需要引用  js文件,然后调用其中的方法,请问我把这个文件下载下来了 怎么引用这个文件? 


页面引入 js文件说明:
http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.85TzJS#通用


引用该js文件后,要调用其中的 pickconversation方法获取会话信息即cid,  怎么调?
http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.85TzJS#获取会话信息


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/24 22:12:00 [只看该作者]

不明白你什么意思,你的钉钉是一个网页应用跟foxtable没有任何关系。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/24 22:22:00 [只看该作者]

如果要做:直接用C#.net搭建一个网站,然后和钉钉交互;

 

或者是:你做一个html,里面可以引入js,然后参考webbrowser和js的交互

 

下载信息  [文件大小:10.3 KB  下载次数:55]
图片点击可在新窗口打开查看点击浏览该文件:js与webbrowser交互.rar

参考内容 http://webkafa.blog.163.com/blog/static/17483446320109145540790/

 


 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2016/2/25 13:42:00 [只看该作者]

我的意思是,钉钉官方提供了一个js文件(见附件),里面定义了,

全局变量、命名空间

直接引入dingtalk.js会得到一个全局变量dd,支持amd、cmd引入方式

全局变量dd,命名空间:设备(dd.device)、业务(dd.biz)


请问该如何引用这个文件?        使得程序中可以使用如下结构?
 dd.config({
    agentId: '', // 必填,微应用ID
    corpId: '',//必填,企业ID
    timeStamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '', // 必填,签名
    jsApiList: ['device.notification.alert', 'device.notification.confirm'] // 必填,需要使用的jsapi列表
});

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/25 14:16:00 [只看该作者]

 只有网站或者网页可以引用js文件。

 

 


 回到顶部