You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从其他项目的类中访问C# .NET控制台输出文本

C# 跨项目调用自定义控制台输出类实现方案

核心失败原因排查

跨项目调用自定义类失败基本都是以下几个问题导致的,逐一排查即可:

  • 自定义的CoolConsole类没有加public访问修饰符,默认的internal级别只能在当前程序集内访问,外部项目根本看不到这个类
  • 外部项目没有正确添加对CoolConsole所在项目的引用
  • 代码文件没有引入CoolConsole所在的命名空间
  • 把CoolConsole写在了纯控制台输出的Exe项目里,没有开启引用程序集生成,.NET默认不会为Exe项目生成可供其他项目引用的程序集文件

分步实现

1. 编写自定义控制台工具类

在你自己的日志工具项目里添加如下代码,注意类和方法都必须用public static修饰:

using System;

namespace MyCustomLogTool // 自定义命名空间,外部调用需要引用这个命名空间
{
    public static class CoolConsole
    {
        // 普通日志输出
        public static void WriteLine(string message)
        {
            // 可自定义输出格式,比如加时间戳、日志标签
            Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] [INFO] {message}");
        }

        // 第二类输出,比如错误日志,可自定义字体颜色
        public static void WriteError(string errorMessage)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] [ERROR] {errorMessage}");
            Console.ResetColor();
        }
    }
}

2. 配置项目可被外部引用

如果CoolConsole是放在独立的控制台应用项目里,需要打开该项目的.csproj文件,在第一个<PropertyGroup>节点里添加如下配置,让项目生成可供其他程序引用的程序集:

<GenerateReferenceAssemblies>true</GenerateReferenceAssemblies>

修改完成后重新生成一次项目。如果是把CoolConsole单独放在类库项目里,不需要加这个配置,直接生成即可。

3. 外部项目配置

在需要调用日志输出的外部项目里做两个配置:

  • 右键项目依赖项,选择添加项目引用,勾选你存放CoolConsole的项目完成引用
  • 在需要调用输出的代码文件顶部,添加对应命名空间的引用,对应上面的示例代码就加:
using MyCustomLogTool;

调用验证

配置完成后就可以直接用你预期的形式调用,不需要额外实例化:

// 普通信息输出
CoolConsole.WriteLine("Hey");
// 第二类错误输出
CoolConsole.WriteError("Test error message");

补充说明:如果调用CoolConsole的外部项目不是控制台类型(比如是类库、WinForm、WPF项目),默认不会弹出控制台窗口,需要在程序入口处调用Windows API手动分配控制台才能看到输出:

// 放在Program.Main方法最开头执行一次即可
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();

AllocConsole();

内容的提问来源于stack exchange,提问作者Adrian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:27:26