Полезная функция visual studio - возможно?
Привет,
Мне было интересно, возможно ли это сделать. динамически изменять краткое описание метода, чтобы помочь с передачей параметров. Давайте возьмем этот код:
public static IGamePacket createPacket(Type packetType, object[] args) { return (IGamePacket)construct(packetType, args); } private static object construct(Type packetType, object[] args) { return packetType.GetConstructors()[0].Invoke(args); }
Этот код используется, например;
PacketRawData rawDataPacket = (PacketRawData)PacketFactory.createPacket(typeof(PacketRawData), new object[] { ??? });
Проблема здесь заключается в том, что каждый производный класс IGamePacket имеет разные параметры для своего конструктора. Это означает, что я должен смотреть на конструктор класса при вводе текста
new object[] { ??? }
Есть ли способ динамически установить сводку IGamePacket, чтобы передаваемые параметры отображались при вводе PacketFactory.createPacket(...)? Было бы приемлемо показать все пакеты и параметры, но еще лучше, если бы он мог использовать packetType для получения параметров этого конкретного класса.
Это простой пример того, что я хочу, чтобы произошло:
/// <summary> /// /// </summary> /// <param name="this should be 'int a' or 'string b' depending on the type passed"></param> private void createPacket(Type type) // typeof(PacketOne) or typeof(PacketTwo) { // ... } public class PacketOne { public PacketOne(int a) { } } public class PacketTwo { public PacketTwo(string b) { } }
Что я уже пробовал:
-----------------------------------------------------------------------------------------------
Richard Deeming
Если вы знаете тип во время компиляции, какое преимущество дает ваш фабричный метод по сравнению с прямым вызовом конструктора?
Если ты не если вы знаете тип во время компиляции, то как Visual Studio узнает, какие параметры типа следует отображать?
[no name]
Потому что я могу построить пакет по его типу или идентификатору, два разных метода. Я не знаю, как Visual Studio может это сделать, вот почему я задал этот вопрос.