我正在使用dll在c#中开发一个gui应用程序。这个dll包含几个常见的函数,比如属性验证。
但是,我需要使用如下函数验证对象的属性:
public static bool validate(MyObject object)
{
bool success = true;
// some validation
if(!valid(object.property))
{
// log to database, this works
log("property is not valid"); // log to database, this works
// how can I do this?
sendMessageToForm("property is not valid");
success = false;
}
return success;
}
此外,validate()必须返回一个布尔值,而不是一串消息
如何通过dll向表单发送消息?
答案 0 :(得分:0)
您需要在项目中添加dll的引用,之后在类中添加dll的名称空间,声明类的对象并调用validate消息并传递参数以进行验证。
答案 1 :(得分:0)
如果您在此处显示的是您的dll中的代码,我假设您要从您的dll内部更新表单。
这样做的方法是让你的dll class
发布一个事件,比如说ValidationError
事件,它也会随身携带EventArgs
你希望在表单上显示的信息。
然后,在您的表单上,您从dll class
实例化对象,您还必须为该事件附加一个侦听器。
MyClassInDll myObject=new MyClassInDll();
myObject.ValidationError+=new EventHandler<ValidationErrorMessage>(YourMethodThatDisplaysTheMessagesOnTheForm);
然后,您可以使用该对象调用if (myObject.Validate(someOtherObject))
,这将返回boolean
,同时仍会触发向您的表单发送错误消息的event
。
答案 2 :(得分:0)
public static bool validate(MyObject object, out message)
这将为您提供一个输出消息字符串,可以在调用validate的位置设置。