Вопрос про AssemblyRef
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 31.01.14 12:31
Оценка:
Привет всем.

В 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 есть обращения.

Вопрос — что мне нужно сделать, чтобы в моей сборке сгенерировался такой класс с такой вот записью?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re: Вопрос про AssemblyRef
От: Sinix  
Дата: 03.02.14 05:55
Оценка: 6 (1)
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Судя по-всему — он был создан средствами компилятора.

Не совсем так — сделан руками, точные значения предзаполняются в процессе сборки. См комментарии к SSCLI. Вот тут для похожих целей предлагают использовать препроцессор c++

КД>Вопрос — что мне нужно сделать, чтобы в моей сборке сгенерировался такой класс с такой вот записью?

Я бы сначала ответил на два вопроса:
* зачем?
* что будете делать при обновлении сборки, на которую ссылаетесь?
Re[2]: Вопрос про AssemblyRef
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.02.14 11:44
Оценка: +1
Здравствуйте, 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 был определен в глобальном пространстве имен. И поэтому посчитал, что он был сгенерирован средствами компилятора
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[3]: Вопрос про AssemblyRef
От: Sinix  
Дата: 03.02.14 11:52
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Мне нужно было воспроизвести атрибуты свойства OleDbConnetionStringBuilder.FileName:

КД>В конечном итоге, я завел свой аналог AssemblyRef с нужной мне информацией.
А, да — тут только через константы, руками забивать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.