原 WCF学习之旅----基础篇之Ente

server

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.EnterpriseServices;
using System.Runtime.InteropServices;
[assembly: ApplicationName("hunjixinServicesTransactionTest")]//在组件服务浏览器里的名称  
[assembly: Description("Coded By ljli 2/14/2009")]//在组件服务浏览器里的描述信息  
[assembly: ApplicationActivation(ActivationOption.Server)]//启动类型Library在创建进程里激活,运行在客户进程,Server类型系统  
[assembly: ApplicationAccessControl(false)]//访问设置,关闭后,用户都可以访问 
namespace EnterpriseServicesCOMTest
{
    [EventTrackingEnabled(true)]//允许监视,组件对象浏览器可以看到。默认关闭,因为会降低性能  
    [Description("Coded By Frankljl For EnterpriseServices cacular Test")]//组件对象浏览器显示的描述信息  
    //[JustInTimeActivation(false)]//打开或者关闭JIT启动  
    [ObjectPooling(true, 1, 10)]//是否启用对象池,如果对象创建消耗更多的资源,可以考虑对象池  
    [Transaction(TransactionOption.Supported)]//是否需要支持事务特性
    public class Cacu : ServicedComponent  
    {
        public Cacu()
        { }
        public string fuc()
        {
            return "加减乘除运算";
        }
        public int add(int x, int y)
        {
            return x + y;
        }
        public int sub(int x, int y)
        {
            return x - y;

        }
        public int mul(int x, int y)
        {
            return x * y;

        }
        public int div(int x, int y)
        {
            if (y != 0)
            {
                return x / y;
            }
            else
            {
                throw new NotFiniteNumberException("除数不可为零");
            }

        }

        
    }
}

   这里有个需要注意的地方comvisible需要设置为可见,否则注册会失败。

// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 特性设置为 true。
[assembly: ComVisible(true)]

调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.EnterpriseServices;
using EnterpriseServicesCOMTest;
namespace EnterpriseServicesClient
{
    class Program
    {
        static void Main(string[] args)
        {
            using (EnterpriseServicesCOMTest.Cacu ca = new Cacu())
            {
                Console.WriteLine(ca.fuc());
                Console.WriteLine(ca.add(12, 13));
                Console.WriteLine(ca.sub(12, 13));
                Console.WriteLine(ca.mul(12, 13));
                Console.WriteLine(ca.div(12, 13));
            }
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏听雨堂

用Nunit测试通讯程序

    对于Nunit,我是个纯粹的新手,没想到,第一个练手的,居然是一个通讯程序。难度略微大了点。我的通讯程序是一个类似通讯服务器的程序,能够监听和维持多个连...

2007
来自专栏丑胖侠

《Drools7.0.0.Final规则引擎教程》第4章 4.2 auto-focus

auto-focus 在agenda-group章节,我们知道想要让AgendaGroup下的规则被执行,需要在代码中显式的设置group获得焦点。而此属性可配...

2119
来自专栏施炯的IoT开发专栏

windows mobile窗口之间传递数据的方法

    在windows mobile上设计UI的时候,经常会碰到多个窗口的情况。有时候,我们需要将一个窗口中的用户输入信息反应到另一个窗口中去,这就涉及到窗口...

2009
来自专栏恰童鞋骚年

自己动手写一个简单的MVC框架(第一版)

  路由(Route)、控制器(Controller)、行为(Action)、模型(Model)、视图(View)

1472
来自专栏DOTNET

.Net多线程编程—误用点分析

1 共享变量问题 错误写法: 所有的任务可能会共享同一个变量,所以输出结果可能会一样。 1 public static void Error() 2 { 3 ...

3398
来自专栏码农阿宇

ASP.NET Core轻松入门Bind读取配置文件到C#实例

首先新建一个ASP.NET Core空项目,命名为BindReader ? 然后 向项目中添加一个名为appsettings.json的json文件,为什么叫a...

5635
来自专栏大内老A

在ASP.NET MVC中通过URL路由实现对多语言的支持

对于一个需要支持多语言的Web应用,一个很常见的使用方式就是通过请求地址来控制界面呈现所基于的语言文化,比如我们在表示请求地址的URL中将上语言文化代码(比如e...

2206
来自专栏张高兴的博客

张高兴的 Windows 10 IoT 开发笔记:无线收发芯片 nRF24L01

3028
来自专栏Hadoop实操

如何使用Java调用CM的API动态配置Yarn资源池

用户在使用CDH集群大数据平台时会有需求在自己的统一管理平台上通过API接口能够动态的设置Yarn资源池,Cloudera Manager提供了丰富的API接口...

1922
来自专栏张高兴的博客

张高兴的 Windows 10 IoT 开发笔记:无线收发芯片 nRF24L01

1212

扫码关注云+社区

领取腾讯云代金券