Я создал наименьшее возможное решение в Visual Studio 2015 (C#, WPF) для доступа к внутреннему классу в одной сборке из другой сборки.Сборка неподписанного друга в C# в Visual Studio 2015
До сих пор не повезло.
MainWindow.xaml.cs
using System.Windows;
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("FriendAssemblyTestLibrary")]
namespace FriendAssemblyTest
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
GlobalData.Member = "hi"; // this works fine
}
}
}
GlobalData.cs
namespace FriendAssemblyTest
{
internal static class GlobalData
{
internal static string Member { get; set; }
}
}
Class1.cs
namespace FriendAssemblyTestLibrary
{
public class Class1
{
public Class1()
{
GlobalData.Member = ""; // this generates: "The name 'GlobalData' does not exist in the current context"
}
}
}
Раствор это FriendAssemblyTest и содержит 2 проекта, FriendAssemblyTest и FriendAssemblyTestLibrary (Библиотека классов).
При необходимости, застегнули решение доступно для загрузки здесь: https://drive.google.com/open?id=0Bwmvskxz-sI1TTBzamQ0WEpLTUE
Запутанные немного для меня было это не представляется возможным в Visual Studio 2015 для установки опции компилятора/выхода, но друг сборки примеры, казалось, настаивали на том, что это необходимо.
Я ценю любую помощь, которую каждый может отправить мне.
Спасибо! Том
Так что пошло не так?Вы показали какой-то код, но не сказали нам ничего более конкретного, чем «это порождает ошибку». («Class1.cs», который вы нам показали, не имеет директивы по использованию для пространства имен «FriendAssemblyTest», с одной стороны, по крайней мере, не того, что вы нам показали.) –
К сожалению, я должен был включить это: - «Имя« GlobalData »не существует в текущем контексте». – CINCHAPPS
Это должно скомпилироваться, когда проект библиотеки __references__ проекта Test. Однако библиотека имен предполагает, что это неправильная зависимость. –