Simplifying a series of type checks and casts in a generic method
You should create a Dictionary&lt;Type,Type&gt; that would associate your object's type with their DTO equivalent, so you wouldn't need any if. Then you can use the dictionary to find the types to map. ex : 

//This should be instanciated wherever you want, but try to do it only once. 
//The dictionary should be static
dictionary = new Dictionary&lt;Type,Type&gt;();
dictionary.Add(typeof(File),typeof(FileDTO));
//etc..

public T GetContentByNodeIdSync&lt;T&gt;(Guid nodeId)
{
    var data = m_CMSCatalog.GetContentByNodeId(nodeId);
    Type dtoType;
    bool mapExists = dictionary.TryGetValue(typeof(T), out dtoType); //To make sure you have an existing map in your dictionary.

    if(mapExists)
        return (T)Mapper.Map(data, dtoType, typeof(T));

    return default(T);
}