代码分析 公用类库

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

公用类库代码 常用方法<br>namespace
UtilityLibary

{

    public
interface ILog

    {

        int
FileSize { get; set; }

        /// <summary>

        /// 写入log到指定文件

        /// </summary>

        /// <param name="msg"></param>

        /// <param name="fullpath"></param>

        void
Log(string
msg, string
fullpath);

    }

    public
interface INetHelper

    {

        HttpWebRequest WebRequestInstance { get; set; }

        HttpWebResponse WebResponseInstance { get; set; }

        string
Url { get; set; }

    }

    public
interface IUtility

    {

        /// <summary>

        /// md5 加密 返回信息都是小写

        /// </summary>

        /// <param name="input"></param>

        /// <returns></returns>

        string
MD5Encrypt(string
input);

        /// <summary>

        /// 转化时间为时间戳

        /// </summary>

        /// <param name="dt"></param>

        /// <returns></returns>

        long
ConvertDateTimeToLong(DateTime dt);

        /// <summary>

        /// 转化时间戳为时间

        /// </summary>

        /// <param name="times"></param>

        /// <returns></returns>

        DateTime ConvertLongToDateTime(long
times);

    }

    public
interface IFile

    {

        string
GetCurrentDirectory();

        string
GetSystemDriveDirectory();

        string
GetCurrentWorkDirectory();

    }

    public
abstract class FileBase : IFile

    

        public
string GetCurrentDirectory()

        {

            return
System.Environment.CurrentDirectory;

        }

        public
string GetSystemDriveDirectory()

        {

            throw
new NotImplementedException();

        }

        public
string GetCurrentWorkDirectory()

        {

            return
System.IO.Directory.GetCurrentDirectory();

        }

    }

    public
class FileHelper : FileBase

    {

        

    }

    public
class LogHelper : ILog

    {

        private
object mux = new
object();

        public
int FileSize

        {

            get;

            set;

        }

        public
void Log(string
msg, string
fullpath)

        {

            lock
(mux)

            {

                if
(!File.Exists(fullpath))

                {

                    using
(File.Create(fullpath)) { }

                }

                using
(StreamWriter sw = new
StreamWriter(fullpath))

                {

                    sw.WriteLine(msg);

                }

            }

        }

        public
void Log(string
msg, string
directoryPath, bool
autoCreateDateDirectory = true)

        {

            lock
(mux)

            {

                if
(autoCreateDateDirectory)

                {

                    string
dateDirectory = Path.Combine(directoryPath, DateTime.Now.ToString("yyyyMMdd"));

                    if
(!Directory.Exists(dateDirectory))

                    {

                        Directory.CreateDirectory(directoryPath);

                    }

                    string
txtPath = Path.Combine(dateDirectory, "log.txt");

                    if
(!File.Exists(txtPath))

                    {

                        using
(File.Create(txtPath)) { }

                    }

                    using
(StreamWriter sw = new
StreamWriter(txtPath, true, Encoding.UTF8))

                    {

                        sw.WriteLine(msg);

                    }

                }

            }

        }

    }

    public
class NetHelper : INetHelper

    {

        public
HttpWebRequest WebRequestInstance

        {

            get;

            set;

        }

        public
HttpWebResponse WebResponseInstance

        {

            get;

            set;

        }

         

        public
string Url

        {

            get;

            set;

        }

        public
delegate void RequestStreamHandle(HttpWebRequest request);

        /// <summary>

        /// 对请求流做操作

        /// </summary>

        public
event RequestStreamHandle RequestStreamEvent;

        public
delegate void ResponseStreamHandle(HttpWebResponse request);

        /// <summary>

        /// 对返回流做处理

        /// </summary>

        public
event ResponseStreamHandle ResponseStreamEvent;

        public
delegate void UserAgengtHandle(HttpWebRequest request);

        public
event UserAgengtHandle UserAgengtEvent;

        public
NetHelper(string
url)

        {

            this.Url = url;

        }

        public
void GetResponse()

        {

            if
(!string.IsNullOrEmpty(Url))

            {

                throw
new Exception("Url can‘t be empty");

            }

            WebRequestInstance = WebRequest.Create(this.Url) as
HttpWebRequest;

            WebRequestInstance.Method = "POST";

            WebRequestInstance.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36";

             

            if
(UserAgengtEvent != null)

            {

                UserAgengtEvent(WebRequestInstance);

            }

            if
(RequestStreamEvent != null)

            {

                RequestStreamEvent(WebRequestInstance);

            }

            try

            {

                WebResponseInstance = WebRequestInstance.GetResponse() as
HttpWebResponse;

            }

            catch
(Exception ex)

            {

                if
(ex is
WebException)

                {

                    WebResponseInstance = (ex as
WebException).Response as
HttpWebResponse;

                }

            }

            if
(ResponseStreamEvent != null)

            {

                ResponseStreamEvent(WebResponseInstance);

            }

        }

    }

    public
class Utility : IUtility

    {

        public
string MD5Encrypt(string
input)

        {

            byte[] result = Encoding.Default.GetBytes(input);    //tbPass为输入密码的文本框

            MD5 md5 = new
MD5CryptoServiceProvider();

            byte[] output = md5.ComputeHash(result);

            return
BitConverter.ToString(output).Replace("-", "").ToLower();

        }

        public
long ConvertDateTimeToLong(DateTime dt)

        {

            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new
System.DateTime(1970, 1, 1));

            return
(long)(dt - startTime).TotalSeconds;

        }

        public
DateTime ConvertLongToDateTime(long
times)

        {

            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new
DateTime(1970, 1, 1));

            long
lTime = long.Parse(times + "0000000");

            TimeSpan toNow = new
TimeSpan(lTime); return
dtStart.Add(toNow);

        }

    }

}

  

时间: 2024-12-28 20:49:49

代码分析 公用类库的相关文章

你不知道的常用 代码分析 规范

visual studio有个功能,代码分析,一般开发完毕后,除了处理常规的“错误列表”显示的“错误”和“警告”,我们更加应该注意的是,运行代码分析功能,规范我们的代码,因为不好的编码习惯,在没有人指出和没有团队氛围的开发中,很多时候都是一路不规范到底 visual studio菜单的“分析”->“对***运行代码分析”或者在解决方案的类库右击选择代码分析如果为了强迫自己养成良好的c#微软规范的习惯,我们可以右击类库属性,找到最后一行标签“代码分析”,并在对应右侧明细的“规则集”->"

jsencrypt代码分析——openssl的rsa加密解密在js的实现

在js上做rsa,感觉jsencrypt这个是封装的比较好的,但用起来还是遇到了些坑,所以踩进代码里填填坑- 项目在这里 https://github.com/travist/jsencrypt [rsa算法] 首先科普一下rsa:公钥私钥成对,用其中一个加密只能用另一个解密,常用公钥加密私钥解密. 一开始看到斯坦佛那个库,原始的算法实现: 长度,建议至少1024.模数n(常取默认65537)两边都要用. 指数e,和n一起就是公钥.指数d,和n一起就是私钥.质数p和q用于生成密钥对,然后就丢弃不

jsencrypt代码分析

jsencrypt代码分析--openssl的rsa加密解密在js的实现 在js上做rsa,感觉jsencrypt这个是封装的比较好的,但用起来还是遇到了些坑,所以踩进代码里填填坑- 项目在这里 https://github.com/travist/jsencrypt [rsa算法] 首先科普一下rsa:公钥私钥成对,用其中一个加密只能用另一个解密,常用公钥加密私钥解密. 一开始看到斯坦佛那个库,原始的算法实现: 长度,建议至少1024.模数n(常取默认65537)两边都要用. 指数e,和n一起

转载 C#开发串口总结,并提炼串口辅助类到公用类库中

C#开发串口总结,并提炼串口辅助类到公用类库中 开发C#相关的项目有很多年了,一直没有接触串口的开发,近期由于工作的需要,需要了解熟悉对硬件串口的开发,通过对串口的深入了解,串口也不再是什么神秘的东西,利用SerailPort组件,对串口的各种操作也非常的方便,由于本人总是喜欢把一些常用的东西封装成可供重复利用的类库,因此,阅百家代码,提炼总结优化,把对串口的操作封装成一个公用的类库,应付日常的串口编程开发,也算是工作的一个阶段性总结吧. 先上图,了解串口的一些基本的东西,并逐步介绍相关的知识.

java代码分析及分析工具

java代码分析及分析工具 一个项目从搭建开始,开发的初期往往思路比较清晰,代码也比较清晰.随着时间的推移,业务越来越复杂.代码也就面临着耦合,冗余,甚至杂乱,到最后谁都不敢碰. 作为一个互联网电子商务网站的业务支撑系统,业务复杂不言而喻.从09年开始一直沿用到现在,中间代码经过了多少人的手,留下了多少的坑,已经记不清楚了,谁也说不清了. 代码的维护成本越来越高.代码已经急需做调整和改善.最近项目组专门设立了一个小组,利用业余时间做代码分析的工作,目标对核心代码进行分析并进行设计重构. 代码分析

Java静态代码分析工具Infer

Java静态代码分析工具Infer 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Infer介绍 Infer是Facebook最新开源的静态程序分析工具,用于在发布移动应用之前对代码进行分析,找出潜在的问题.目前Facebook使用此工具分析Facebook的App,包括Android.iOS.Facebook Messenger和Instagram等. Facebook称该工具帮助其每个月检查出应用潜在的数百个Bug,例如一些空指针访问.资源

$*和[email&#160;protected]之间区别代码分析

#!/bin/bash set 'apple pie' pears peaches for i in $*           /*单引号被去掉,循环单个字符输出*/ do echo $i done [[email protected] Ex_14.02-14.31]# sh 14-14-1 apple pie pears peaches -------------------------------------------------------------- #!/bin/bash set

《linux 内核完全剖析》 keyboard.S 部分代码分析(key_map)

keyboard.S 部分代码分析(key_map) keyboard中间有这么一段,我一开始没看明白,究竟啥意思 key_map: .byte 0,27 .ascii "1234567890-=" .byte 127,9 .ascii "qwertyuiop[]" .byte 13,0 .ascii "asdfghjkl;'" .byte '`,0 .ascii "\\zxcvbnm,./" .byte 0,'*,0,32

20145234黄斐《网络对抗技术》实验四,恶意代码分析

恶意代码 概述 恶意代码是指故意编制或设置的.对网络或系统会产生威胁或潜在威胁的计算机代码.最常见的恶意代码有计算机病毒(简称病毒).特洛伊木马(简称木马).计算机蠕虫(简称蠕虫).后门.逻辑炸弹等. 特征: 恶意的目的,获取靶机权限.用户隐私等 本身是计算机程序,可以执行,并作用于靶机 通过执行发生作用,一般来说不运行是没问题的 恶意代码分析 在大多数情况下,进行恶意代码分析时,我们将只有恶意代码的可执行文件本身,而这些文件并不是我们人类可读的.为了了解这些文件的意义,你需要使用各种工具和技巧