代码描述人生

.NET 相关技术 (大坏蛋的blog)

博客园 首页 新随笔 联系 订阅 管理
  28 Posts :: 4 Stories :: 62 Comments :: 2 Trackbacks

2006年12月19日 #

     摘要:   阅读全文
posted @ 2006-12-19 22:37 大坏蛋 阅读(193) | 评论 (0)编辑

2005年11月28日 #

志明和丽文是一对夫妻,他们的收入不高,但是喜欢上了高尔夫球。
有一天,他们带上球杆和几个球找地方去练习。最后找到了一个高级住宅区的
草坪,周围都是别墅。他们看一下周围没有物业管理的人,就在这片草坪上练习起
来。天有不测风云,丽文在练习挥杆的时候,球杆不慎脱手,打碎了一扇窗子然后
掉进去了。
他们两个急忙跑到那户人家,发现大门是虚掩的,他们就推门走进去。一进门
就看见碎掉的窗子,窗子旁边还有一个好像是古玩的琉璃灯也碎在地上,一个穿着
金黄色睡袍的微胖的留着长发的中年男人在一侧的沙发上坐着抽雪茄。
志明和丽文马上走上前去,正要对那个男人说道歉,男人先开口说话了:“你们
不要怕,其实我是灯神,”男人一指那个碎掉的琉璃灯,“我被困在那个灯里面已经
一千多年了,今天你们打破了灯,把我放了出来,因此我决定报答你们,满足你们三
个愿望。”
志明和丽文面面相觑,过了半分钟,志明才小声说:“我想要一辆法拉利! 跑
车。”灯神很干脆的说:“你已经有了,法拉利公司会在48小时内把车交给你。”志
明一下欣喜若狂,但是马上安静下来,和丽文窃窃私语了几分钟后,又说:“我要在全世
界的每个银行里面都有1个亿美元的存款。”灯神沉思一下说:“我大致算了一下,你
现在的身家已经超过140亿美元了。”志明和丽文疯狂拥抱,庆祝他们的好运气。灯神
说:“还有一个愿望,快说吧。”
丽文不等志明开口,就抢着说:“我要在全世界每一个名胜风景区都拥有一套大
房子。”灯神爽快的说:“这个简单,你已经拥有了。”
志明和丽文更是又笑又跳,乐不可支。这时灯神说话了:“我满足了你们三个愿
望,你们也要满足我一个愿望。否则刚才的三个愿望就不能实现了。”
志明和丽文紧张起来,心里想会不会拿走他们的灵魂之类。灯神说:“我的愿望
很简单,”他抬手指一下丽文,“只要你和我上一次床就可以了。”
志明和丽文权衡再三,觉得没什么吃亏的,就答应他了。于是志明在楼下客厅
等待,灯神和丽文到二楼客厅“办事”。
事毕,灯神在床上点燃了一支雪茄,看着身材曼妙面容姣好! 的丽文欢欢喜喜的
穿衣服,问道:“你们两个都多大了?”
丽文答:“我31岁,他33岁了。”
灯神说:“都三十多岁的人了,居然还会相信有灯神!”
posted @ 2005-11-28 16:00 大坏蛋 阅读(103) | 评论 (0)编辑

2005年3月4日 #

最近忙于一个项目,今天总算通过测试了,想起好久没有更新我的BLOG,让关心我的人失望了,接下来我会总结一下这段时间的工作,把技术心得与大家共享。
posted @ 2005-03-04 17:17 大坏蛋 阅读(301) | 评论 (0)编辑

2004年10月27日 #

 

Using directives

namespace Impersonal
{
    
class Program
    
{
        
测试代码

        [DllImport(
"advapi32.dll", SetLastError = true)]
        
public extern static bool LogonUser(String lpszUsername, String lpszDomain,
            String lpszPassword, 
int dwLogonType,
            
int dwLogonProvider, ref IntPtr phToken);

        [DllImport(
"kernel32.dll", CharSet = CharSet.Auto)]
        
public extern static bool CloseHandle(IntPtr handle);

        [DllImport(
"advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        
public extern static bool DuplicateToken(IntPtr ExistingTokenHandle,
            
int SECURITY_IMPERSONATION_LEVEL, ref IntPtr DuplicateTokenHandle);

        
public delegate void ImpersonatedWork();
        
/// <summary>
        
/// 以指定用户的身份去做一件事情
        
/// </summary>
        
/// <param name="UserName"></param>
        
/// <param name="PWD"></param>
        
/// <param name="WhatToDo"></param>

        public static void ImpersonateAndDo(string UserName, string PWD, ImpersonatedWork WhatToDo)
        
{
            
扮演用户
            
以新用户身份调用
            
取消扮演
        }

    }

}


最近太忙,好久不来,贴段刚写的代码,希望大家还记得我.
posted @ 2004-10-27 20:22 大坏蛋 阅读(2623) | 评论 (0)编辑

2004年9月10日 #


一个Assembly中所有的非公共类型,可以被它的【好友】Assembly访问。即如果AssemblyA中声明AssemblyB是它的好友Assembly,则AssemblyB可以像访问自身Assembly一样访问AssemblyA的私有类型。
将另一个Assembly声明成自己的Friend Assembly,需要使用一个InternalsVisibleToAttribute的特性。

[assembly:InternalsVisibleTo ("AssemblyB", PublicKeyToken="32ab4ba45e0a69a1")]

不过,声明Friend Assembly,代表允许AssemblyB访问自己的私有类型,但B不做逆向声明,A是不能访问B的私有类型的。跟现实生活一样。有的人你把他当朋友,什么秘密都告诉他,可人家没把你当朋友(开个玩笑,我身边没有)。
posted @ 2004-09-10 13:08 大坏蛋 阅读(1071) | 评论 (0)编辑

.NET FrameWoek2.0中,新添加一个IpcChannel,它是利用Windows的Ipc(进程间通讯)实现的一个Remoting的Channel,它的速度比Http或Tcp的Channel快很多,但它只能被用在本机不同应用程序域之间的通讯,所以,如果我们的客户端有可能与服务器端在同一个机器上运行时,可以通过注册IcpChannel来提高性能。
下面是一个简单的IpcChannel的示例:

Using directives

namespace TestIpcChannel
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            IpcChannel myChannel 
= new IpcChannel("test");
            ChannelServices.RegisterChannel(myChannel);
            RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemObject), "RemObject.rem", WellKnownObjectMode.SingleCall);
            
//服务注册结束,下面是客户端代码
            RemObject obj = (RemObject)(Activator.GetObject(typeof(RemObject), "Ipc://Test/RemObject.rem"));
            obj.TestMethod();
            Console.ReadLine();
        }

    }

    
public class RemObject : MarshalByRefObject
    
{
        
public void TestMethod()
        
{
            Console.WriteLine(
"Hello IcpChannel!");
        }

    }


}

为了便于大家读代码,该程序同时扮演服务器和客户端的角色,可以直接编译执行。
posted @ 2004-09-10 11:00 大坏蛋 阅读(3339) | 评论 (4)编辑

2004年8月26日 #

欢迎大家轰炸chenchangjian@gmail.com
posted @ 2004-08-26 12:20 大坏蛋 阅读(472) | 评论 (0)编辑

2004年8月9日 #

委派返回值为其函数列表中最后一个调用的返回值,不过一般我们不会去关心它。
简单示例如下:
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace ConsoleApplication3
{
    class Program
    {
        delegate string DelegateTest(string input);
        static void Main(string[] args)
        {
            DelegateTest din = new DelegateTest(Test1);
            din += new DelegateTest(Test2);
            string rlt = din("123");
            Console.WriteLine(rlt);
            Console.ReadLine();
        }
        static string Test1(string inp)
        {
            Console.WriteLine("Test1");
            return "test1";
        }
        static string Test2(string inp)
        {
            Console.WriteLine("Test2");
            return "test2";
        }
    }
}
posted @ 2004-08-09 22:44 大坏蛋 阅读(651) | 评论 (0)编辑

全文请参见:http://www.cnblogs.com/dahuaidan410/articles/31656.aspx
posted @ 2004-08-09 21:10 大坏蛋 阅读(1108) | 评论 (0)编辑

2004年7月20日 #

在浏览cnblogs中的某些页面时(常常是主页),加载完页面后就自动跳转到下面页面了。
地址栏中的URL变成了:http:///

该问题是由MyIE2的插件引起的,在MyIE2选项中,将那些无聊的插件去掉即可

不过我想:遇到问题的朋友,能看到该页面吗?
posted @ 2004-07-20 08:37 大坏蛋 阅读(2665) | 评论 (8)编辑