InternalsVisibleTo属性的问题

时间:2012-03-16 13:04:40

标签: .net c#-4.0

我有以下代码:

namespace ConectorV2
{
    [assembly:InternalsVisibleTo("Pruebas")]
    internal static class Utilidades
    {
        internal static string extraerCadenaDeConexion()
        {
            return extraerCadenaDeConexion(new XElement());
        }
        internal static string extraerCadenaDeConexion(XElement documento)
        {
            throw new NotImplementedException();
        }
    }
}

然后在Pruebas项目中:

namespace Pruebas.ConectorV2.Cliente
{
    [TestFixture]
    class ModuloExtraerCadenaDeConexion
    {
        [Test]
        public void devuelveCadenaSolicitada()
        {
            var mock = new MockRepository();
            var appSettings =
                XElement.Parse(
                    @"<appSettings>
                                <setting key='dbtype' value='SQLSERVER' />
                                <setting key='SQLSERVER' value='prueba' />
                            </appSettings>");
            Assert.That(ConectorV2.Utilidades.extraerCadenaDeConexion(appSettings), Is.EqualTo("prueba"));
        }
    }
}

我在编译时遇到以下错误:

名称空间Pruebas.ConectorV2'中不存在类型或命名空间名称“Utilidades”(您是否缺少程序集引用?)

我的pruebas项目中正确引用了程序集,我在msdn上读到项目的默认程序集名称是项目名称...我缺少什么?

1 个答案:

答案 0 :(得分:5)

您不应该在类上使用汇编级属性!就这样做:

[assembly:InternalsVisibleTo("Pruebas")]
namespace ConectorV2
{
    internal static class Utilidades
    { /* ... */

它应该有用