Привет всем.
В mscorlib, согласно информации ILSpy, есть
using System;
internal static class AssemblyRef
{
//...
internal const string SystemDesign = "System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
//...
}
Судя по-всему — он был создан средствами компилятора.
В исходниках FW (4.5) к AssemblyRef.SystemDesign есть обращения.
Вопрос — что мне нужно сделать, чтобы в моей сборке сгенерировался такой класс с такой вот записью?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Судя по-всему — он был создан средствами компилятора.
Не совсем так — сделан руками, точные значения предзаполняются в процессе сборки. См
комментарии к SSCLI.
Вот тут для похожих целей предлагают использовать препроцессор c++
КД>Вопрос — что мне нужно сделать, чтобы в моей сборке сгенерировался такой класс с такой вот записью?
Я бы сначала ответил на два вопроса:
* зачем?
* что будете делать при обновлении сборки, на которую ссылаетесь?
Здравствуйте, Sinix, Вы писали:
КД>>Судя по-всему — он был создан средствами компилятора.
S>Не совсем так — сделан руками, ....
Спасибо.
КД>>Вопрос — что мне нужно сделать, чтобы в моей сборке сгенерировался такой класс с такой вот записью?
S>Я бы сначала ответил на два вопроса:
S>* зачем?
S>* что будете делать при обновлении сборки, на которую ссылаетесь?
Мне нужно было воспроизвести атрибуты свойства OleDbConnetionStringBuilder.FileName:
[DisplayName(DbConnectionStringKeywords.FileName)]
[ResCategoryAttribute(Res.DataCategory_NamedConnectionString)]
[ResDescriptionAttribute(Res.DbConnectionString_FileName)]
[RefreshPropertiesAttribute(RefreshProperties.All)]
//
[Editor("System.Windows.Forms.Design.FileNameEditor, " + AssemblyRef.SystemDesign, "System.Drawing.Design.UITypeEditor, " + AssemblyRef.SystemDrawing)]
public string FileName
В конечном итоге, я завел свой аналог AssemblyRef с нужной мне информацией.
Я просто не допер, что выше обозначенный AssemblyRef был определен в глобальном пространстве имен. И поэтому посчитал, что он был сгенерирован средствами компилятора
-- Пользователи не приняли программу. Всех пришлось уничтожить. --