In bussines class you should NEVER use any direct-UI communications.
Its because the UI can be winforms/webforms/console/smart_devices/etc... or no UI is used (in scripts for example).
If you need some user-decide in bussines process you can use several ways, how to that. In .NET is one of the simple way Events.
For example:
public class MyBussinesClass {
public void DoSomeBussinesRelatedWork() {
// ... some code and then you need a users decision
var argWhichCurrencyToUse = new DecisionEventArgs {
Title = "Currency selection",
Text = "Which currency you want to use in bill?",
Answer = "USD"
};
this.OnDecisionRequred( argWhichCurrencyToUse );
// ... contine in work ...
}
protected void OnDecisionRequired( DecisionEventArgs e ) {
// run the event
}
public event EventhHandler<DecisionEventArgs> DecisionRequired;
}
public class DecisionEventArgs {
public string Title {get;set;}
public string Text {get;set;}
public object Answer {get;set;}
}
The UI then can hook the events and show the correct UI (messagebox, inputbox, webform, console read/write, etc....