Estoy creando una biblioteca de servidor en la que la asociación de paquetes se realiza por enum.¿Cómo puedo hacer una enumeración "abstracta" en una biblioteca de clases .NET?
public enum ServerOperationCode : byte
{
LoginResponse = 0x00,
SelectionResponse = 0x01,
BlahBlahResponse = 0x02
}
public enum ClientOperationCode : byte
{
LoginRequest = 0x00,
SelectionRequest = 0x01,
BlahBlahRequest = 0x02
}
Eso funciona bien cuando se trabaja en su propio proyecto - se puede comparar qué miembro de la enumeración se devuelve (es decir if (packet.OperationCode == ClientOperationCode.LoginRequest)
). Sin embargo, como se trata de una biblioteca de clases, el usuario deberá definir su propia enumeración.
Por lo tanto, tengo dos enumeraciones para agregar como "abstracto" - ServerOperationCode y ClientOperationCode. Sé que no es posible implementar enumeraciones abstractas en C#. ¿Cómo voy a hacer esto?
no puedo averiguar lo que está tratando aquí. ¿Desea que sus códigos sean tipos .NET reales para que su cliente obtenga verificación de tipos, pero no quiere que el cliente vea los valores? ¿Qué intenta hacer que el cliente agregue una referencia a su biblioteca no resuelva? –
Creo que en realidad estoy tratando de crear una biblioteca en la que los objetos estáticos puedan extenderse, lo cual es imposible. Por ejemplo, una biblioteca en la que puede anular o implementar "Server.Start", pero eso no es posible. Podría ir por los eventos, sin embargo. Veré lo que puedo hacer, gracias por todas las respuestas, las probaré. – Lazlo