This is a solution if you want to control which files will automatically be transferred by ASCII or BINARY without writing control statements for WinSCP in C#, you have to create a new session and on that session
AddRawConfiguration(@"Interface\CopyParam\Masks", ...)
For example:
using (var session = new Session())
{
var asciiFileMasks = "*.xsl; *.xslt; *.*html; *.htm; *.txt; *.php; *.php3; *.cgi; *.c; *.cpp; *.h; *.pas; *.bas; *.tex; *.pl; *.js; .htaccess; *.xtml; *.css; *.cfg; *.ini; *.sh; *.xml";
session.AddRawConfiguration(@"Interface\CopyParam\Masks", asciiFileMasks );//for automatic transfers, this list determines ascii or binary mode
///... do your thing
}