自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风尘浪子

给你个人空间,发挥无穷想像力

  • 博客(73)
  • 资源 (15)
  • 收藏
  • 关注

原创 WCF揭秘——共享数据契约

当客户端引用WCF服务时,必须为服务定义一个唯一的命名空间。在默认情况下,这个服务中所用到的类会被导入到这个命名空间内。这样,在不同的服务内引用同一个数据契约时就会遇到一个问题:在客户端,同一个数据契约被导入到不同的命名空间中,无法实现转换。在以下例子中,PersonServ

2011-08-08 17:12:02 2395 1

原创 WCF揭秘——可靠性会话功能

一、可靠性会话Windows Communication Foundation (WCF) 可靠性会话是一个如 WS-ReliableMessaging 协议所定义的 SOAP 可靠消息传递的实现。它在绑定层保证消息只会被传送一次,并能确定消息之间的传输顺序。它的特性在于保证

2011-08-08 16:35:51 1487

原创 javascript摘要——为file标签的name属性赋值

已经很久没用javascript做页面了,这天突然有朋友问我关于FileUpload的赋值问题,由于FileUpload经过编译后,最后生成标签。而在 HTML 文档中 , 标签是浏览器向服务器发送选中文件的。该元素有一个 value 属性,保存了用户指定的文件的名称,为安全起见

2011-08-08 16:19:26 2435

原创 分享8年开发经验,浅谈个人发展经历,明确自己发展方向

在中国有很多人都认为IT行为是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。  明确入行的目的很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML、DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容易

2011-06-16 15:55:00 1582 2

原创 JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯

在.NET Remoting与RMI通信中同时存在一个弊端,那就是对开发语言的限制,无论是使用哪一种通讯方式,服务器与客户端都必须支持同一种开发语言。通讯过程中不能跨越开发语言的限制,这是一个人令人懊恼的消息。JNBridge是一种领先的JAVA与.NET互操作的的产品,凭借JNBridge技术,Java和.NET代码无需交叉编译器就可以实现对象共享。所有Java代码运行在JVM上,而.NET代码则运行在CLR上。在该方案下,JVM和CLR可以运行在不同的机器上,也可以运行在一台机器的不同进程上,甚至还能运

2011-05-31 16:39:00 3389 1

原创 学习笔记:JAVA RMI远程方法调用简单实例

RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据。RMI是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。在过去,TCP/IP套接字通讯是远程通讯的主要手段,但此开发方式没有使用面向对象的方式实现开发,在开发一个如此的通讯机制时往往令程序员感觉到乏味,对此RPC(Remote Procedure Call)

2011-05-21 18:50:00 27643 12

原创 回顾.NET Remoting分布式开发

记得在下第一次接触.NET Remoting分布式开发是在2003年,那时候是Framework1.0初次亮相之时,Remoting分布式开发是Framework1.0其中一个亮点。经过多年的发展,在2005年,WCF随着Framework2.0首先亮相。WCF是结合Remoting,Web服务,TCP/IP套接字,MSMQ信息,P2P,WSE等多方通讯的混合体。随着WCF的出现是否意昧着Remoting即将没落,答案是否定的。因为Remoting有其独到之处,在通讯效率,信息交换,安全性等多方面都有其特点

2011-05-11 10:36:00 2233

原创 WF工作流与Web服务的相互调用 —— WF与WCF互相调用(利用ReceiveActivity把WF发布为WCF)...

前几篇文章已经为大家介绍过Web服务与Workflow工作流之间的相互调用的方法,在这两篇文章里面开始为大家介绍一下WCF与 Workflow工作流之间的关系。微软在WCF和WF之间扩展了强大的功能,使用两者能够协调工作,在.NET Framework3.5中既可以把Workflow发布为WCF实现工作流服务,也可以在WCF中调用Workflow工作流,增强其使用的灵活性。下面先为大家介绍如何...

2011-05-06 09:58:00 43

原创 WF工作流与Web服务的相互调用 —— 以InvokeWebServiceActivity在Workflow工作流调用Web服务...

在前面两篇文章里面已经为大家介绍过如何在Web服务调动Workflow工作流,在这篇文章为大家介绍如何通过InvokeWebServiceActivity在Workflow中调动Web服务。下面还是以最简单的Hello World作为例子:首先开发一个ASMX服务View Code <%@ WebService Language="C#" CodeBehind="~/App_Co...

2011-05-06 09:47:00 38

原创 WF工作流与Web服务的相互调用 —— 通过Web服务调用Workflow工作流(开发持久化工作流)...

如果你曾经负责开发企业ERP系统或者OA系统,工作流对你来说一定并不陌生。工作流(Workflow)是对工作流程及其各操作步骤之间业务规则 的抽象、概括、描述。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。WF正是解决企业核心问题的关键,通过WF可以轻松地轻 松地按照业务逻辑去实现开发,然后把WF发布为Web服务,这样客户端...

2011-05-06 09:37:00 43

原创 WF工作流与Web服务的相互调用 —— 通过Web服务调用Workflow工作流(基础实例)...

在开发一个企业ERP系统时,其业务流程是开发的关键,系统往往会将开发好的业务方案发布为Web服务以供外界调用。客户可以通过服务器,互联网等等方式 去调用服务,而解决业务上需要及信息的交换问题。有见及此,微软在.NET 3.0基础上发布了WF,WCF,以及WCS,WPF(为开发表现层而设)。WF,WCF正是解决企业核心问题的关键,通过WF可以轻松地轻松地按照业务 逻辑去实现开发,然后凭借WCF的强...

2011-05-06 09:23:00 41

原创 JAVA与.NET的相互调用——TCP/IP相互调用基本架构(附原代码)

在众多的开发语言中,绝大部分的开发语言都支持TCP/IP协议通讯,开发过程也十分相像,先设置好Socket,然后由客户端发送请求信息,服务器连接客户端接收到请求后再返还信息。而在.NET系统当中则稍有不同,系统把Socket对象包装在TcpClient对象内,对Socket对象的生命周期进行管理。在开发过程当中,服务器与客户端的开发语言有所不同的情况经常发生,服务器是在JDK1.6的环境下进行开发的,客户却要求使用.NET开发客户端,这往往会令开发人员感到困惑!下面在下使用JAVA为服务器,.NET为客户端

2011-05-05 15:58:00 2858 1

原创 JAVA与.NET的相互调用——TCP/IP相互调用基本架构

TCP/IP套接字的概念TCP/IP(传输控制协议/网际协议)是网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信。TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就...

2011-05-04 17:50:00 44

原创 JAVA与.NET的相互调用——通过Web服务实现相互调用(附原代码)

JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方。而在很多大型的开发项目里面,往往需要同时使用两种语言进行集成开发。而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候对另一种语言感觉到畏惧。在这里在下向各位介绍一下,JAVA与.NET相互调用的例子。下面的介绍主要包括三方面:一是通过常用Web服务进行相互调用,二是使用TCP/IP套接字进行相互调用,三是利用Remoting实现相互调用。在这章里面先为大家介绍一下最简单,最常用的Web服务相互调用方式。首先说一下We

2011-04-24 10:45:00 3196 1

原创 JAVA与.NET的相互调用——通过Web服务实现相互调用

JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方。而在很多大型的开发项目里面,往往需要使用两种语言进行集成开发。而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候对另一种语言感觉到畏惧。在这里在下向各位介绍一下,JAVA与.NET相互调用的例子。下面的介绍主要包括三方面:一是通过常用Web服务进行相互调用,二是使用TCP/IP套接字进行相互调用,三是使用Re...

2011-04-24 10:31:00 39

原创 热门话题:使用WCF实现SOA面向服务编程—— 架构设计(附原代码)

SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。因此,基于SOA的架构也一定是从企业的具体需求开始构建的。但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性。业务灵活性是指企业能对业务变更快速和有效地进行响应、并且利用业务变更来得到竞争优势的能力。对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个可以满足当前还

2011-03-29 15:11:00 7075 4

原创 使用WCF实现SOA面向服务编程—— 架构设计

SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。因此,基于SOA的架构也一定是从企业的具体需求开始构建的。但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性。业务灵活性是指企业能对业务变更快速和有效地进行响...

2011-03-29 14:50:00 38

原创 合理使用“.NET扩展方法”来简化代码(例子:空值判断,利用扩展方法实现LINQ操作符ForEach)...

我们先简单介绍扩展方法的定义,扩展方法是用来在类型定义完成后再继续为其添加新的方法。扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。你只要在静态类的静态方法的参数前加上this,就可以生成这个类的扩展方法。如果你曾经开发过详细资料修改的窗口或者页面,你一定经常会为空值的判...

2011-01-28 11:05:00 41

原创 WCF揭秘——使用AJAX+WCF服务进行页面开发

AJAX即 “Asynchronous JavaScript and XML”(异步JavaScript和XML),通过 AJAX可使用 JavaScript 与 XMLHttpRequest 对象直接与服务器进行通信。通过这个对象, JavaScript 可在不重载页面的情况与 Web 服务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从...

2011-01-26 14:13:00 43

原创 WCF揭秘——简单的WCF开发实例

一、WCF是什么WCF是微软为了实现各个开发平台之间的无疑缝连接而开发一种崭新工具,它是为分布式处理而开发。WCF将DCOM、Remoting、Web Service、WSE、MSMQ、AJAX服务、TCP开发集成在一起,从而降低了分布式系统开发者的学习曲线,并统一了开发标准。二、WCF的优点第一,开发的统一性。WCF是对于ASMX, Remoting,Enterprise Service...

2011-01-26 14:04:00 46

原创 SOA面向服务架构——SOA的概念

SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”。一、SOA的定义SOA分为广义的SOA和狭义的SOA,广义的SOA是指一种新的企业应用架构和企业IT基础架构,它可以使企业实现跨应用,跨部门,跨企业甚至跨 行业之间的离散系统实现互连。(注意:这里所指的服务并不单单是Web Service,它可以是以Web Servic...

2011-01-26 14:01:00 38

原创 WF工作流技术内幕 —— WF与WCF互相调用(利用ReceiveActivity把WF发布为WCF)

前几篇文章已经为大家介绍过Web服务与Workflow工作流之间的相互调用的方法,在这两篇文章里面开始为大家介绍一下WCF与 Workflow工作流之间的关系。微软在WCF和WF之间扩展了强大的功能,使用两者能够协调工作,在.NET Framework3.5中既可以把Workflow发布为WCF实现工作流服务,也可以在WCF中调用Workflow工作流,增强其使用的灵活性。使用此方式,可以轻松地Workflow发布为WCF服务而不需要编写任何干预探测代码,但值得注意的是WCF支持请求/响应,单向,双向多个工

2011-01-25 18:48:00 6615 1

原创 WF工作流技术内幕 —— 以InvokeWebServiceActivity在Workflow工作流调用Web服务

在前面两篇文章里面已经为大家介绍过如何在Web服务调动Workflow工作流,在这篇文章为大家介绍如何通过InvokeWebServiceActivity在Workflow中调动Web服务。通过这个的开发实例,大家可以认识到如何使用InvokeWebServiceActivity调用Web服务。总而言之,通过Web服务与Workflow工作流的相互调用,可以实现多个复杂的业务层的开发。

2011-01-24 14:05:00 4910

原创 WF工作流技术内幕 —— 通过Web服务调用Workflow工作流(开发持久化工作流)

如果你曾经负责开发企业ERP系统或者OA系统,工作流对你来说一定并不陌生。工作流(Workflow)是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。有见及此,微软在.NET 3.0基础上发布了WF,WCF,以及WCS(身份验证解决方案),WPF(为开发表现层而设)。WF正是解决企业核心问题的关键,通过WF可以轻松地轻松地按照业务逻辑去实现开发,然后把WF发布为Web服务,这样客户端

2011-01-23 20:20:00 10591

原创 WF工作流技术内幕 —— 通过Web服务调用Workflow工作流(基础实例)

在开发一个企业ERP系统时,其业务流程是开发的关键,系统往往会将开发好的业务方案发布为Web服务以供外界调用。客户可以通过服务器,互联网等等方式去调用服务,而解决业务上需要及信息的交换问题。有见及此,微软在.NET 3.0基础上发布了WF,WCF,以及WCS,WPF(为开发表现层而设)。WF,WCF正是解决企业核心问题的关键,通过WF可以轻松地轻松地按照业务逻辑去实现开发,然后凭借WCF的强大功能把同一服务绑定多个不同的EndPoint,这样客户端与服务与服务器端通讯就不会再受开发语言的影响。

2011-01-23 12:41:00 9537 1

原创 合理使用“.NET 扩展方法”来简化代码(例子:空值判断,利用扩展方法实现LINQ操作符ForEach)

我们先简单介绍扩展方法的定义,扩展方法是用来在类型定义完成后再继续为其添加新的方法。扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。你只要在静态类的静态方法的参数前加上this,就可以生成这个类的扩展方法。如果你对LINQ的结构有了一定的了解,那么你就应该理解LINQ的表达式正是使用IEnumerable或IEnumerable的扩展方法生成的,多个LINQ的操作符都可以利用代码进

2011-01-19 22:33:00 5073

原创 有效利用ASP.NET用户控件的事件委托

当你在开发ASP.NET网站,对用户控件一定并不陌生。当多个页面都使用相同或相似的设计时,使用用户控件可以提高开发效率!但往往你会因为用户控件有少许不同的要求而感觉到烦恼。在多个页面都会要求用到用户搜索,有时候它会用于修改用户的基本资料,有时候它会用来查询用户订单,有时候它会查询用户论坛的信息。多个页面用的都是同一个功能的搜索器,但当按下“选择”键的时候,它们要求实现不同的功能。这时候,你可以使用用户控件的事件来实现这个功能。总结一下,适当地利用ASP.NET用户控件的属性和事件,可以更有效地提高用

2011-01-16 15:16:00 2150

原创 以异步的方式操作TCP/IP套接字——以异步方式实现简单的聊天室

普通的TCP/IP开发方式大家都应该非常熟练,但在系统开发的时候往往会遇到问题。比如:在开发一个简单的聊天室的时候,一般情况下,Windows应用程序会处于同步方式运行,当监听的客户端越多,服务器的负荷将会越重,信息发送与接收都会受到影响。这时候,我们就应该尝试使用异步的TCP/IP通讯来缓解服务器的压力。这个例子里,ChatClient类使用异步的IO线程进行数据读取,这样每个一客户端的都处于一个IO线程中处理,使主线程及早得到释放,这样做就缓解了服务器端压力。

2011-01-14 19:10:00 2974

原创 ASP.NET服务器端多线程设计——异步Web Service

在上一章介绍过异步IHttpHandler后,大家应该了解到异步操作带来的好处。它可以及时释放服务器线程池里面的线程,当完成外部操作再使用回调函数进行数据获取。下面为大家介绍一下异步Web Service的操作,其实它与异步IHttpHandler的原理是十分相似的,记得在介绍IHttpHandler里面以Stream异步作为例子,下面以SqlCommand作为例子。(还说一句老话,我这里指的是服务器端的异步方式,而并非客户端异步调用)。总结:ASP.NET Web 服务中提供了一个有效的机制,可以异步调用

2011-01-14 13:55:00 4944

原创 热门话题:使用WCF实现SOA面向服务编程(三)—— 使用AJAX+WCF实现页面开发

在上一篇讲到,如果将BLL层的每一个类都转化为*.svc,这是一个不实在的想法。它会使服务变化复杂,难于管理。这时候,我们第一时间想到的是23个简单开发模式中的Factory,在这里,Factory正好派上用场。我们把这个Factory称之为管道(pipeline) ,通过这个管道客户端可以随意调用服务器BLL层里面的类。(详细资料可参考Cory Isaacson的杰作《多核应用架构关键技术—软件管道与soa》)热门话题:使用WCF实现SOA面向服务编程(一)——SOA的概念热门话题:使用WCF实现SOA面

2011-01-12 18:19:00 4299

原创 热门话题:使用WCF实现SOA面向服务编程(二)——实现简单的WCF开发实例

在WCF里,各个Application之间的通信是由EndPoint来实现的,EndPoint是WCF实现通信的核心要素。一个WCF Service可由多个EndPoint集合组成,每个EndPoint只能有一种绑定,就是说EndPoint就是通信的入口,客户端和服务端通过EndPoint交换信息。Endpoint由三部分组成:(A) Address 地址,通过一个URI唯一地标识一个Endpoint(B)Binding 绑定,定义了与数据传输相关的传输协议,消息编码,通信模式,可靠性,安全性,事务,互操作

2011-01-12 15:36:00 3915 1

原创 热门话题:使用WCF实现SOA面向服务编程(一)——SOA的概念

SOA的概念是Gartner在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”。一、SOA的定义SOA分为广义的SOA和狭义的SOA,SOA是一种新的企业应用架构和企业IT基础架构,它可以使企业实现跨应用,跨部门,跨企业甚至跨行业之间的离散系统实现互连,这为之广义的SOA(注意:这里所指的服务并不单单是Web Service,它可以是以Web Service实现 ,也可以以业务方式实现,甚至是书面口头承诺实现)。而狭义的SOA是指一种软件架构,它可以根据需求通过

2011-01-11 16:08:00 3506

原创 ASP.NET服务器端多线程设计——异步IHttpHandler

在.NET系统中,可以通过Thread直接创建线程。但为了避免使用过多的线程对系统性能做成影响,微软特别开发了一个ThreadPool(线程池)对线程进行管理。ThreadPool.QueueUserWorkItem(new WaitCallback(method), objcet);//新建线程线程池的线程却分成两种CLR线程与IO异步线程ThreadPool.GetAvailableThreads(out int a1, out int a2);//a1为CLR线程,a2为IO异步线程一般ASP.NET

2010-12-29 16:10:00 5019 2

glove_python 包,window 版,直接解压 pip setup.py install 即可安装

glove_python 包,window 版,直接解压 pip setup.py install 即可安装

2022-03-28

《Docker实战》Jeff Nickolloff 著

《Docker实战》由Docker 社区第一人Jeff Nickoloff 编写,共分为3 部分,第1 部分(第1~6章)重点介绍了Docker 容器的资源隔离和权限控制及基础原理,第2 部分(第7~10 章)详细解释了如何打包构建镜像以及各种镜像分发基础设施的建设,第3 部分(第11~12 章)聚焦于Docker 容器的组合操作,也就是多容器和多主机环境的管理。《Docker实战》图文并茂,结合基本原理和具体案例给大家提供了多个不错的实战机会。 链接:https://pan.baidu.com/s/1ZZHQ0p7yBDJUiEoUu33VrQ 提取码请下载

2018-11-12

Spark大数据分析核心概念技术及实践--(美)攫罕默德·古勒

《Spark大数据分析核心概念技术及实践 》 Spark 大数据分析:核心慨念、技术及实践/(美)攫罕默德·古勒( Mohammed Gull er) 著;赵斌,马景,陈冠诚译 https://pan.baidu.com/s/1cdwG1HFa3uYcoJBD4UxPqg 密码请下载资源

2018-11-12

Adam Nathan名著 《WPF 揭秘》 下卷

包括了《WPF 揭秘》的5部分,17个章节内容,由于上传空间有限,所以分上下卷上传。 Adam Nathan名著 《WPF 揭秘》可谓书中极品,可惜已经绝版,只有这电子版了,愿与大家分享!

2010-07-28

Adam Nathan名著 《WPF 揭秘》(上)

包括了《WPF 揭秘》的5部分,17个章节内容,由于上传空间有限,所以分上下卷上传。 Adam Nathan名著 《WPF 揭秘》可谓书中极品,可惜已经绝版,只有这电子版了,愿与大家分享!

2010-07-28

Adam Nathan名著 《WPF 揭秘》

包括上下两卷, (美)Adam Nathan 所著的《WPF 揭秘》可谓是WPF中的极品,想买可惜已经绝版。只有这一部电子版的了。

2010-07-28

LINQ开发实例,一部介绍LINQ基本功能的电子书

它介绍了LINQ的基本功能,里面包含大量代码,向你讲述LINQ的开发过程。

2010-07-01

(图书零售管理)包含50多个数据表的专业软件开发案例,适合已经有一定开发经验想要提升技能的人参考。

在下正在学习大型软件的框架开发,在网上看过好多书,说的都是讲小型案例,实在没有什么帮助。偶然发现一个大型专业软件的开发实例,愿与大家分享! 例子里从需求分析到数据库的开展都有详细讲解,而且关联50多个表格的开发,逻辑关系比例复杂,可以算是真正的专业项目。

2010-06-30

Visual Studio 2008 UML设计

一项用作VS 2008 UML设计的工具,比VISIO更好用。

2010-03-21

Scott Guthrie 杰作《Professional ASP.NET MVC 1.0》中文版

找了关于ASP.NET MVC的资料好久,只发现有英文的。 现在终于找到中文版的了。 愿与大家分享。

2009-09-24

Scott Guthrie 杰作《Professional ASP.NET MVC 1.0》

是一本即将出版的书,现在只有电子版! 真的好希望快点能有多些关于ASP.NET MVC的中文版图书出现

2009-09-24

Jason Diamond 的 Anthem库

一个简单库。如果你是一名ASP.NET 设计师,这可是很好用的东西。

2009-09-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除