
编程及调试
文章平均质量分 55
lxf310
这个作者很懒,什么都没留下…
展开
-
.NET中的Kerberos验证与SPN设置
.NET应用程序中涉及的Kerberos验证浅析原创 2022-10-17 21:42:47 · 564 阅读 · 1 评论 -
Angular单元测试小记 -- Karma + Jasmine
简单的讲Jasmine是一个用于编写JavaScript单元测试的框架,Karma则为Jasmine提供了运行环境。配置Karma1. 在karma.conf.js中添加如下配置...browsers: ['Chrome'],customLaunchers: { ChromeHeadlessCI: { base: 'ChromeHeadless', flags: ['--no-sandbox'] }},restartOnFileChange: true...原创 2022-05-18 21:29:53 · 879 阅读 · 0 评论 -
从前序遍历和中序遍历构造二叉树(Java)
public class MyTree { class TreeNode { public TreeNode left; public TreeNode right; public int value; public TreeNode(int v) { value = v; left = null; right = null; } }.原创 2021-11-27 23:46:40 · 270 阅读 · 0 评论 -
二叉树遍历:递归 + 非递归 (Java)
import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public class Tree { class TreeNode { public TreeNode left; public TreeNode right; public int value; public TreeNode(int v) { val.原创 2021-11-27 17:35:14 · 476 阅读 · 0 评论 -
如何利用C#在内存中生成zip文件并保存
using System;using System.Drawing.Imaging;using System.IO;using System.IO.Compression;...public void MyZipMethod(){ try{ using (var memoryStream = new MemoryStream()) { using (var archive = new ZipArchive(memoryStream.原创 2021-09-02 21:57:47 · 1491 阅读 · 0 评论 -
如何在.NET Framework应用程序中使用HttpClientFactory
当我们搜索HttpClient的最佳实践时会发现,HttpClient原创 2021-05-31 22:33:06 · 2020 阅读 · 0 评论 -
如何使用.NET操纵SharePoint站点
本文将示例如何使用PnP.Framework实现一个y原创 2021-05-29 23:32:11 · 484 阅读 · 0 评论 -
Microsoft Bot Framework SDK小记
聊天机器人(Bot)可谓时下较为火热的话题之一,为了追赶一下潮流,本文将简要介绍一下如何利用Microsoft Bot Framework实现一个基于Microsoft Teams的聊天机器人。本文的示例代码使用.Net Framework 4.6.1、Microsoft.Bot.Builder 4.11.1以及Microsoft.Bot.Builder.Integration.AspNet.Web4.11.1。1. 注册Bot首先我们需要在Azure Bot Service上注册一个Bot,并上.原创 2021-05-29 22:04:09 · 484 阅读 · 0 评论 -
利用LINQ实现简单的异步并发
在.NET应用程序的开发过程中,处于性能考虑,我们可能需要多个互不相关的异步作业同时执行。此时我们可能会想到利用Parallel.ForEach函数,但倘若这些作业是有返回值的,而且我们需要将这些返回值收集起来,那么我们就会需要利用await/async操作,然后目前基本的Parallel.ForEach函数并不支持await/async操作。因此,我们需要另辟蹊径,比如Task.WhenAll。本文的示例代码的实现思路分为两步,一是将完整的作业集分割成若干个子集,之后利用LINQ的Select函数未子集中原创 2021-05-11 14:28:48 · 396 阅读 · 0 评论 -
C#自定义配置小记
我们在设计与实现一个应用程序时,往往会将一些常量写入配置文件当中,并且希望这些常量作为一个结构体被整体读写。对此,C#提供的System.Net.Configuration可以帮我们轻松的实现这个需求。本文将介绍几种常见的使用常见及实现,样例代码为.NET framework 4.6.1的控制台程序(如ConfigDemo),配置文件名为App.config。1. Key-Value配置项对于一些简单的配置项,我们可以直接将其存储在configuration文件中提供的appSettings当中,该原创 2021-02-04 11:44:48 · 677 阅读 · 1 评论 -
Microsoft Graph小记之应用开发
在Microsoft Graph小记之身份验证一文中,笔者介绍了在利用Microsoft Graph进行开发时,如何解决身份验证及授权的问题。本文将接着介绍,如何利用前文中实现的IAuthenticationProvider接口类完成业务逻辑需求开发。1. Graph客户端初始化为了能够调用实际的Graph SDK Methods/API来实现所需的业务逻辑,用户首先需要利用自定义的IAuthenticationProvider接口实现类初始化一个GraphServiceClient实例。pu原创 2021-01-17 20:23:43 · 608 阅读 · 0 评论 -
Microsoft Graph小记之身份验证
Microsoft Graph是一种可以让用户访问 Microsoft 云服务资源(如Microsoft 365)的 REST 风格的 Web API,用户可以通过直接发送HTTP请求或Graph SDK来使用这些接口。本文将介绍如何利用Graph SDK来向服务器提供身份验证信息,以获取所需操作的必要权限。1. 创建App Registration为了能够访问Graph,用户首先需要通过https://portal.azure.com创建一个app registraion,以使应用能够与 Micr原创 2021-01-17 00:09:26 · 1186 阅读 · 0 评论 -
.Net Web Api过滤器小记
Web Api的过滤器(Filter)使用的面向切面(Aspect Oriented Programming)的编程思想,该机制使得编程人员可以很方便的向Web Api的主逻辑中添加一些额外的逻辑,比如身份验证预授权、数据模型验证以及格式化异常处理等。在实际编程实现中,过滤器其实就是作用于Web Api Controller的一个或多个Action之上的Attribute。以下是比较常用的可供实现自定义过滤器的接口和类。接口 类 简介 IActionFilter ActionF原创 2020-11-07 13:02:58 · 376 阅读 · 0 评论 -
使用log4net实现文本日志
log4net库是一个帮助程序员输出日志状态的工具,本文简介如何使用该库为.NET应用程序添加日志。1. 安装及配置首先,在创建好相关的应用程序后,我们可以利用NuGet manager来为其安装log4net package, 本文是示例中安装的是2.0.8。其次,我们需要在StartUp项目中创建log4net所需的配置,最简便的方式是将这些配置项直接添加到应用程度的App.config(控制台程序)或Web.config(Web API程序)中,比如:<configuratio原创 2020-10-12 22:36:01 · 258 阅读 · 0 评论 -
Swagger简易教程——Swashbuckle版
Swagger 是一个可用于生成、描述、调用和可视化 RESTful 风格的 Web 服务的规范和框架。本文将介绍如何使用Swashbuckle为你的Web API应用程序添加Swagger说明文档。目录准备实用配置1. 利用XML备注生成说明文档2. 利用Swagger属性标签进一步丰富文档3. 为从Request中直接获取的输入添加文档4. 自定义Swagger的文档路径准备本文的示例代码使用了.NET Framework 4.6.1。首先,创建一个新的Web API原创 2020-10-11 21:02:05 · 1706 阅读 · 0 评论 -
如何在.Net中利用HttpClient发送HTTP请求
初始化发送HTTP请求单元测试初始化HttpClient位于System.Net.Http命名空间下,用于发送 HTTP 请求和接收来自通过 URI 确认的资源的 HTTP 响应。HttpClient设计意旨可共享实例,且在使用得当的情况下其实例是线程安全的。对于服务器端应用程序而言,如若为每个HTTP请求均创建一个新的HttpClient实例,则在系统压力较高的情况下可能造成socket端口被耗尽,并导致SocketException。所以,比较推荐的使用方式是利用static关键字创建一原创 2020-09-30 21:40:16 · 3574 阅读 · 0 评论 -
Azure Service Bus (服务总线) 入门
Azure Service Bus是一种完全托管的企业集成消息中转站,可以帮助开发人员轻松地分离应用程序和服务,从而可以专注于面向具体业务逻辑的应用程序的设计和开发。 同时,服务总线还为异步传输数据和状态提供可靠且安全的平台。本文将介绍如何使用.NET通过Service Bus进行应用程序开发,以及如何授权本地应用程序访问所需的Service Bus服务。...原创 2020-07-18 16:50:34 · 3117 阅读 · 1 评论 -
如何使用Entity Framework 6 Code First连接已存在的SQL Server数据库
准备若没有供实验的数据,可以使用Microsoft SQL Server Management Studio通过先创建一个本地数据库,如命名为ef-demo。再使用以下SQL创建一些数据表。USE [ef-demo]GOCREATE TABLE [dbo].[Identities] ( [Id] BIGINT NOT NULL, [NickName] NVARCHAR (200) NOT NULL, [PhoneNumber] NVARCHAR (200) NOT N原创 2020-07-11 23:55:58 · 692 阅读 · 0 评论 -
ASP.NET Web API 路由小记
目录创建ASP.NET Web API应用程序路由表属性路由创建ASP.NET Web API应用程序在Visual Studio 2019中,可以通过选择新建“ASP.NET Web Application (.NET Framework)”来创建一个新的Web API应用程序。通常本人会选择Empty模板,之后勾选"Web API"选项进行创建。在创建好的应用程序中,右键点击Controllers文件夹创建一个Controller类。路由表在ASP.NE.原创 2020-05-29 15:53:38 · 407 阅读 · 0 评论 -
Entity Framework 6 DB-First入门
目录创建一个数据库创建一个应用程序并反向链接数据库向数据库中读写数据如何向数据库中添加新的数据表如何将外键关系转换为继承关系创建一个数据库在实验开始之前,我们需要有一个已经存在的数据库。此处可以通过Microsoft SQL Server Management Studio连接本地SQL Server来创建一个全新的数据库,本地SQL Server连接方法如图所示。新建数据库,并利用如下SQL脚本创建一个数据表。CREATE TABLE [dbo].[Iden.原创 2020-05-28 19:34:14 · 352 阅读 · 0 评论 -
Java volatile关键字的可见性
Java中volatile关键字是用来标记一个Java变量是存储在主存中的,既对于被volatile关键字修身的变量的读写都是直接作用于计算机的主存,而非CPU的缓存的。volatile可以确保任意线程对其所修饰的变量的更改对于其他线程是可见的。在多线程应用程序中,假设我们有两个CPU,两个线程。在对某变量没有添加volatile修饰时,这两个线程会首先读写其所在的CPU的缓存中的该变量的副本。对于线程1而已,当其修改count变量的值时,其真正修改的是CPU缓存1中的count。当CPU缓存1中的co原创 2020-05-25 20:44:07 · 259 阅读 · 0 评论 -
Azure Key Vault入门
Azure Key Vault是一个用来存储及访问密码和证书等秘密信息的服务,本文将介绍如何利用.NET分别从Azure及本地访问Azure Key Vault,以及一些简单的密码管理操作。AzureApp Service如何获取Azure Key Vault的访问权限1. 通过Azure网站进入所创建的Azure Web App的管理界面之后进入Identity管理界面2. 选择System assigned选项卡,将状态设置为on并点击保存按钮3. 在Azure网站最上方的搜索栏..原创 2020-05-12 22:54:14 · 2459 阅读 · 0 评论 -
eclipse下开发HBase程序
1.创建普通java project2.导入外部jar包(you)原创 2014-07-16 15:32:41 · 2788 阅读 · 0 评论 -
hbase的查询scan功能注意点(setStartRow, setStopRow)
Scan scan = new Scan();scan.setStartRow(“5193:”);scan.setStopRow(“5194:”);ResultScanner result = table.getScanner(scan);for (Result r : result) { get it......}查找转载 2014-02-20 17:13:16 · 25717 阅读 · 0 评论 -
Python Paramiko模块安装和使用
转载自:http://www.cnblogs.com/xia520pi/p/3805043.html1、简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了。 使用paramiko可以很好的解决以上问题,比起前面的方法,它仅需要在本地转载 2015-03-13 15:10:03 · 663 阅读 · 0 评论 -
Linux下C++调用Java简单实例(jni)
1. Java端,假设工作目录为/home1) z原创 2014-10-15 16:29:20 · 6961 阅读 · 3 评论 -
JNI的某些数组和字符串类型转换
转载自:http://provista.iteye.com/blog/839703转载 2014-10-31 22:25:34 · 442 阅读 · 0 评论 -
在hadoop集群上运行mapreduce程序时报错“org.apache.hadoop.util.Shell$ExitCodeException:***not found”
说明: bean.exe程序是安装在/publicfs这个lustre文件系统的公共目录下的错误原因:部分节点的/publicfs盘并未挂在成功解决:用root用户执行service lustre restart原创 2013-09-13 13:41:18 · 3668 阅读 · 0 评论 -
c++之split
#include stdio.h> #include string.h> int main () { char str[] ="- This, a sample string."; char * pch; printf ("Splitting string \"%s\" into tokens:\n",str); pch = strtok (str," ,.-"); whil转载 2013-10-06 13:55:00 · 660 阅读 · 0 评论 -
C++的对象复制构造函数与赋值操作符重载的区别小结
1、复制构造函数是一种特殊的构造函数,其目的是使用一个已经存在的对象A来创建(初始化)另一个对象B,对于类中的指针成员,对象B会开辟一块新的地址空间ADDR,并将A的指针成员指向的地址空间内的值拷贝到ADDR中;2、赋值操作符重载函数的作用是使用右操作数对象A的值刷新做操作数对象B的值,B原来的值会被舍弃掉,但对于类中的指针成员,若直接将其舍弃则会出现以下不良现象:指针的值被丢弃了,但指针指向原创 2013-11-13 20:51:03 · 777 阅读 · 0 评论 -
java文件读写操作大全
源地址:http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println("请输入您的命令∶"); byte buffe转载 2014-03-06 17:08:04 · 508 阅读 · 0 评论 -
(c++) Passing `const' as `this' argument of `' discards qualifiers
1. 问题描述#include #include using namespace std;template class Element{ public: 。。。 Element(const Element &e); int getDim() { return this->dim; } 。原创 2013-07-10 11:36:10 · 11342 阅读 · 0 评论 -
C/C++中static关键字详解
静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将转载 2013-11-14 11:34:25 · 712 阅读 · 0 评论 -
利用boost的serialization库实现c++对象的序列化与反序列化
代码示例及讲解#include #include #include #include //本例中需要对string进行存储,所以引入string.hpp;此外还有一些与定义的模板,如vector、list、map等#include #include #include #include using namespace std;class Cat{原创 2013-07-17 15:38:04 · 1497 阅读 · 0 评论 -
getopt用法
getopt的用法getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。#include extern char *optarg; //选项的参数指针 extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, /转载 2013-11-20 12:42:02 · 662 阅读 · 0 评论 -
linux下编译及调试java版hbase相关程序
编译:javac -classpath /usr/lib/hbase/hbase.jar:/usr/lib/hadoop/hadoop-common.jar HBaseOperation.java运行:java -classpath /usr/lib/hadoop/hadoop-common.jar:/usr/lib/hbase/lib/commons-logging-1.1.原创 2014-03-06 11:19:02 · 1897 阅读 · 0 评论 -
CMake(BEAN下)编译thrift程序
1、在用户程序目录下的CMakeLists.txt文件中添加如下两行代码:1)SET (CMAKE_CXX_FLAGS "-DHAVE_CONFIG_H")2)INCLUDE_DIRECTORIES( 。。。 。。。 "/usr/local/include" )2、在build目录下make即可注意:用户程序include原创 2013-09-12 16:11:31 · 2415 阅读 · 0 评论 -
hbase的thrift服务
/etc/rc.d/init.d/hadoop-hbase-thrift start | stop | restart原创 2013-08-29 10:36:43 · 675 阅读 · 0 评论 -
c++ smart pointer之shared_ptr
1.问题描述在使用C++内置的raw pointer时经常会因为内存引用或delete等原因造成segment fault一类的问题,这类问题解决起来是非常繁琐而头疼的。因此C++库提供了smart pointer来替代程序员们管理内存和指针等问题,本文主要介绍其中的shared pointer的使用方法。参考:http://wiki.inkscape.org/wiki/index.php原创 2013-07-11 14:46:32 · 1120 阅读 · 0 评论 -
C++调用JAVA方法详解
转载自:http://public0821.iteye.com/blog/423941转载 2014-10-01 19:17:13 · 8964 阅读 · 0 评论